[Fudgets Home Page]

Fudgets - A Graphical User Interface in a Lazy Functional Language

Magnus Carlsson, Thomas Hallgren


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.

  TITLE = {{{\sc Fudgets} - A Graphical User Interface in a Lazy Functional Language}} ,
  AUTHOR = {M. Carlsson and T. Hallgren} ,
  PAGES = {321--330} ,
  BOOKTITLE = {FPCA '93 - Conference on Functional Programming
	       Languages and Computer Architecture} ,
  PUBLISHER = {ACM Press} ,
  MONTH = {June} ,
  YEAR = "1993" ,
  ISBN = {0-89791-595-X} ,