Gmane
From: Conal Elliott <conal <at> conal.net>
Subject: ANNOUNCE: Phooey -- a Functional UI library for Haskell
Newsgroups: gmane.comp.lang.haskell.general
Date: 2006-12-12 07:17:46 GMT (1 year, 49 weeks, 1 day, 14 hours and 43 minutes ago)

Announcing Phooey, a functional UI library for Haskell.

GUIs are usually programmed in an "unnatural" style, in that implementation dependencies are inverted, relative to logical dependencies. This reversal results directly from the imperative orientation of most GUI libraries. While outputs depend on inputs from a user and semantic point of view, the imperative approach imposes an implementation dependence of inputs on outputs.

Phooey ("Phunctional ooser ynterfaces") retains the functional style, in which outputs are expressed in terms of inputs. In addition, Phooey supports dynamic input bounds, flexible layout, and mutually-referential widgets.

As an example of Phooey's style, below is a simple shopping list GUI. The total displayed at the bottom of the window always shows the sum of the values of the apples and bananas input sliders. When a user changes the inputs, the output updates accordingly.


Phooey is structured as an arrow, and this example uses arrow notation. The code:
ui1 :: UI () ()
ui1 = title "Shopping List" $
proc () -> do
a <- title "apples" (islider 3) -< (0,10)
b <- title "bananas" (islider 7) -< (0,10)
title "total" showDisplay -< a+b

I am working on a paper about Phooey. For now, please see the Haddock documentation (which includes more examples), and try the code via


Directions for building are in the README file. Distribution tarballs are here.

Comments and collaboration are very welcome!

Cheers,

       - Conal

P.S. I'm very grateful for Don Stewart's recent pointers on how to create & release Haskell projects.
_______________________________________________
Haskell mailing list
Haskell <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell