A Functional Programming Technique for Forms in Graphical User Interfaces

  • Sander Evers
  • Peter Achten
  • Jan Kuper
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3474)


This paper presents FunctionalForms, a combinator library for constructing fully functioning forms in a concise and flexible way. A form is a part of a graphical user interface (GUI) restricted to displaying a value and allowing the user to modify it. The library is built on top of the medium-level GUI library wxHaskell. To obtain complete separation between the structure of a form’s layout and that of the edited values, we introduce a novel use of compositional functional references.


Graphical User Interface Combinator Library Functional Language Subject Type Atomic Form 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Leijen, D.: wxHaskell – a portable and concise GUI library for Haskell. In: ACM SIGPLAN Haskell Workshop (HW 2004). ACM Press, New York (2004)Google Scholar
  2. 2.
    Evers, S.: Form follows function: Editor GUIs in a functional style. Master’s thesis, University of Twente (2004), Permanently available at,
  3. 3.
    Achten, P., Plasmeijer, R.: Interactive Functional Objects in Clean. In: Clack, C., Hammond, K., Davie, T. (eds.) IFL 1997. LNCS, vol. 1467, pp. 304–321. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  4. 4.
    The wxWidgets home page can be found at,
  5. 5.
    Sheard, T., Peyton Jones, S.: Template metaprogramming for Haskell. In: Chakravarty, M.M.T. (ed.) ACM SIGPLAN Haskell Workshop 2002, pp. 1–16. ACM Press, New York (2002)CrossRefGoogle Scholar
  6. 6.
    Kagawa, K.: Compositional references for stateful functional programming. In: Proceedings of the second ACM SIGPLAN International Conference on Functional Programming (ICFP 1997). SIGPLAN Notices, vol. 32(8), pp. 217–226. ACM Press, New York (1997)CrossRefGoogle Scholar
  7. 7.
    Foster, J.N., Greenwald, M.B., Moore, J.T., Pierce, B.C., Schmitt, A.: Combinators for bi-directional tree transformations: A linguistic approach to the view update problem. Technical Report MS-CIS-04-15, University of Pennsylvania (2004); An earlier version appeared in the Workshop on Programming Language Technologies for XML (PLAN-X), under the title A Language for Bi-Directional Tree Transformations (2004)Google Scholar
  8. 8.
    Sage, M.: FranTk - a declarative GUI language for Haskell. In: ICFP 2000: Proceedings of the fifth ACM SIGPLAN International Conference on Functional programming, pp. 106–117. ACM Press, New York (2000)CrossRefGoogle Scholar
  9. 9.
    Carlsson, M., Hallgren, T.: Fudgets - a graphical user interface in a lazy functional language. In: Proceedings of the ACM Conference on Functional Programming and Computer Architecture, FPCA 1993, Copenhagen, DK. ACM Press, New York (1993)Google Scholar
  10. 10.
    Carlsson, M., Hallgren, T.: Fudgets – Purely Functional Processes with applications to Graphical User Interfaces. PhD thesis, Chalmers University of Technology (1998),
  11. 11.
    Hanus, M.: A functional logic programming approach to graphical user interfaces. In: Pontelli, E., Santos Costa, V. (eds.) PADL 2000. LNCS, vol. 1753, pp. 47–62. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  12. 12.
    Thiemann, P.: WASH/CGI: Server-side web scripting with sessions and typed, compositional forms. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol. 2257, pp. 192–208. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  13. 13.
    The XForms home page can be found at,
  14. 14.
    Achten, P., van Eekelen, M., Plasmeijer, R.: Generic Graphical User Interfaces. In: Trinder, P., Michaelson, G.J., Peña, R. (eds.) IFL 2003. LNCS, vol. 3145, pp. 152–167. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  15. 15.
    Alimarine, A., Plasmeijer, R.: A Generic Programming Extension for Clean. In: Arts, T., Mohnen, M. (eds.) IFL 2002. LNCS, vol. 2312, pp. 168–186. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  16. 16.
    Achten, P., van Eekelen, M., Plasmeijer, R.: Compositional Model-Views with Generic Graphical User Interfaces. In: Jayaraman, B. (ed.) PADL 2004. LNCS, vol. 3057, pp. 39–55. Springer, Heidelberg (2004)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Sander Evers
    • 1
  • Peter Achten
    • 1
  • Jan Kuper
    • 2
  1. 1.Department of Software TechnologyRadboud University NijmegenNijmegenThe Netherlands
  2. 2.Department of Computer ScienceUniversity of TwenteEnschedeThe Netherlands

Personalised recommendations