FunctionalForms is a combinator library/domain specific language for wxHaskell which enables a very concise programming style for forms: dialogs which only show and edit a set of values. Forms are used in many applications as Options or Settings dialogs.
When manually programming a form in wxHaskell, you create a dialog and controls, set their initial values, define a layout and set event handlers &mdash all sequenced in the IO monad. With FunctionalForms
- control and layout definition are combined into one expression,
- values are passed to and from the controls almost automatically, and
- no IO monad programming has to be done.
FunctionalForms consists of a some Haskell functions which are easy to use and closely resemble wxHaskell's controls and layout combinators, although they are used in a different way.
Presently, FunctionalForms is mostly a proof-of-concept. The most up-to-date description can be found in the scientific articles. However, there is also an implementation which can be downloaded, and which is described in a tutorial. Currently, it does not provide the latest disjoint forms extension.
News: Active development on FunctionalForms is suspended as I switched to another employer. However, I will probably continue with it in the future; there are vague plans to integrate it more closely with wxHaskell. (May 8, 2005)
Any comment/discussion on FunctionalForms is always welcome.