Fudgets - a graphical user interface in a lazy functional language (1993) [76 citations — 4 self]
Abstract:
This paper describes an implementation of a small windowbased graphical user interface toolkit for X Windows written in the lazy functional language LML. By using this toolkit, a Haskell or LML programmer can create a user interface with menus, buttons and other graphical interface objects, without conforming to more or less imperative programming paradigms imposed if she were to use a traditional (imperative) toolkit. Instead, the power of the abstraction methods provided by Haskell or LML are used. The main abstraction we use is the fudget. Fudgets are combined in a hierarchical structure, and they interact by message passing. The current implementation is based on a sequential evaluator, but by using non-determinism and oracles, we suggest how the fudgets can evaluate in parallel. We believe that the toolkit can be extended to a full-feathered and practically useful high level graphical toolkit.
Citations
| 1128 | Monads for functional programming – Wadler - 1992 |
| 215 | Report on the Programming Language Haskell, A Non-strict, Purely Functional Language – Hudak, Jones, et al. - 1992 |
| 66 | Concurrent Clean – Nocker, Smetsers, et al. - 1991 |
| 10 | Lazy ML user's manual – Augustsson, Johnsson - 1993 |
| 3 | Xlib reference manual, volume 2. O'Reilly & Associates – Nye - 1990 |
| 2 | a Graphical User Interface Builder for the Fudgets Library – GUIT - 1993 |
| 2 | Non-deterministic Programming in a Deterministic Functional Language – Augustsson - 1988 |
| 2 | The eXene widgets manual. Cornell University. Anon. FTP: ramses.cs.cornell.edu: /pub/eXene-doc.tar.Z – Gansner, Reppy - 1991 |
| 2 | Introduction to Real-time Multi-user Games Programming in LML – Hallgren - 1990 |
| 1 | Fudgets - Graphical User Interfaces and I/O in Lazy Functional Languages – Carlsson - 1993 |
| 1 | The Fudgets library. Chalmers University. Anon. FTP: ftp.cs.chalmers.se: /pub/haskell/chalmers/lml-!version?.lmlx.tar.Z – Carlsson, Hallgren - 1993 |

