Fudgets
In computing, Fudgets is a graphical user interface toolkit for the functional programming language Haskell and the X Window System. Fudgets makes it easy to create client–server applications that communicate via the Internet.
Most of the work on Fudgets was done in 1991-1996 by Thomas Hallgren and Magnus Carlsson.
The authors claim that many of the advantages of Fudgets come from the fact that they are programmed in a lazy functional programming language.
The main entity of toolkit is fudget (implemented on low level through stream processors) which has its own input and output. Fudgets can be composed in parallel or sequence yielding new fudget which can be used in code as any other fudget.
Example
factorialF = stdoutF >==< mapF (show . factorial . read) >==< stdinF
factorial :: Integer -> Integer
factorial n = product [1..n]
The code is self-describing considering that >==< is sequential fudget plumbing and mapF is fudget that takes a function of one argument and makes a fudget which output is input applied to that function. Note that fudget composition must be read from right to left, as a simple function composition. Now you can simply write
main = fudlogue factorialF
compile and run. For every given integer value it will print its factorial.
License
The license of Fudgets claims that this software is free for non-commercial use only.
External links
- Fudgets home page
- Fudgets Phd thesis by Hallgren and Carlsson
- darcs repository for cabalizing fudgets, does not contain any Fudgets source code