Fudgets - A Graphical User Interface in a Lazy Functional
Abstract
This paper describes an implementation of a small window-based
graphical user interface toolkit for the X Window System 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 nondeterminism and oracles, we suggest how fudgets can
evaluate in parallel.
We believe that the toolkit can be extended to a full-feathered and
practically useful high level graphical toolkit.
The full paper is available as postscript in
fudgets-fpca93.ps.Z.