{{#invoke:Infobox|infobox}}Template:Template other{{#invoke:Check for unknown parameters | check | showblankpositional=1 | unknown = Template:Main other | preview = Page using Template:Infobox software with unknown parameter "_VALUE_"|ignoreblank=y | AsOf | author | background | bodystyle | caption | collapsetext | collapsible | developer | discontinued | engine | engines | genre | included with | language | language count | language footnote | latest preview date | latest preview version | latest release date | latest release version | latest_preview_date | latest_preview_version | latest_release_date | latest_release_version | licence | license | logo | logo alt | logo caption | logo upright | logo size | logo title | logo_alt | logo_caption | logo_upright | logo_size | logo_title | middleware | module | name | operating system | operating_system | other_names | platform | programming language | programming_language | released | replaced_by | replaces | repo | screenshot | screenshot alt | screenshot upright | screenshot size | screenshot title | screenshot_alt | screenshot_upright | screenshot_size | screenshot_title | service_name | size | standard | title | ver layout | website | qid }}Template:Main other

In computing, Fudgets is a graphical user interface toolkit for the functional programming language Haskell and the X Window System.<ref>Template:Cite book</ref><ref>Template:Cite book</ref> Fudgets makes it easy to create client–server model applications that communicate via the Internet.

Most of the work on Fudgets was done in 1991-1996 by Thomas Hallgren and Magnus Carlsson.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

The authors claim that many of the advantages of Fudgets come from it being programmed in a lazy functional programming language.<ref>Template:Cite book</ref>

The main entity of toolkit is fudget (implemented on low level through stream processors) which has its own input and output.<ref>Template:Cite journal</ref> Fudgets can be composed in parallel or sequence, yielding new fudget which can be used in code as any other fudget.

ExampleEdit

<syntaxhighlight lang="haskell"> factorialF = stdoutF >==< mapF (show . factorial . read) >==< stdinF factorial  :: Integer -> Integer factorial n = product [1..n] </syntaxhighlight>

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. Fudget composition must be read from right to left, as a simple function composition. Now you can simply write: <syntaxhighlight lang="haskell"> main = fudlogue factorialF </syntaxhighlight>

compile and run. For every given integer value it will print its factorial.

LicenseEdit

The software license of Fudgets claims that this software is freeware for non-commercial use only.

ReferencesEdit

Template:Reflist

External linksEdit

Template:Haskell programming


Template:Compu-library-stub