Skip to main content

Lightweight GUIs for functional programming

  • Conference paper
  • First Online:
Programming Languages: Implementations, Logics and Programs (PLILP 1995)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 982))

Abstract

Graphical user interfaces (GUIs) are hard to combine with functional programming. Using a suitable combination of monads, we are able to tame the imperative aspects of graphical I/O in a straightforward and elegant way. We present a concept to integrate lightweight GUIs into the functional framework, together with a library of basic functions and layout combinators to manipulate the GUI. An implementation of this library, using a set of high-level graphical I/O routines, is outlined. Examples demonstrate the simple way in which applications can be written.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. P.M. Achten, J.H.G. van Groningen, and M.J. Plasmeijer. High-level specification of I/O in functional languages. In Glasgow Workshop on Functional Programming 1992. Springer Verlag, 1993.

    Google Scholar 

  2. M. Barr and C. Wells. Toposes, Triples and Theories. Springer-Verlag, 1985.

    Google Scholar 

  3. M. Carlsson and Th. Hallgren. Fudgets — a graphical user interface in a lazy functional language. In Conference on Functional Programming and Computer Architecture. ACM Press, 1993.

    Google Scholar 

  4. P. Hudak, S.L. Peyton Jones, and Ph. Wadler (eds.). Report on the programming language Haskell, Version 1.2. ACM SIGPLAN Notices, 27(5), 1992.

    Google Scholar 

  5. M.P. Jones and L. Duponcheel. Composing monads. Research Report RR-1004, Yale University, December 1993.

    Google Scholar 

  6. M. Jones. Release notes for Gofer 2.28, 1993. Included as part of the standard Gofer distribution.

    Google Scholar 

  7. M.P. Jones. An introduction to Gofer (draft), 1993.

    Google Scholar 

  8. D.J. King and J. Launchbury. Lazy depth-first search and linear graph algorithms in haskell. Technical report, University of Glasgow, 1994.

    Google Scholar 

  9. J. Launchbury and S.L. Peyton Jones. Lazy functional state threads. Technical report, University of Glasgow, November 1994.

    Google Scholar 

  10. E. Moggi. Computational lambda-calculus and monads. In Symposium on Logic in Computer Science, pages 14–23, Washington DC, 1989. IEEE.

    Google Scholar 

  11. R. Noble and C. Runciman. Functional languages and graphical user interfaces — a review and a case study. Available by ftp at ftp.york.ac.uk, February 1994.

    Google Scholar 

  12. J.K. Ousterhout. Tcl and the Tk toolkit. Addison Wesley, 1994.

    Google Scholar 

  13. S.L. Peyton Jones and Ph. Wadler. Imperative functional programming. In Proc. 20th ACM Symposium on Principles of Programming Languages, Charlotte, North Carolina, January 1993.

    Google Scholar 

  14. F. Pessaux and F. Rouaix. The CamlTk interface — release beta2. Available by ftp at ftp.inria.fr, February 1994.

    Google Scholar 

  15. A. Reid and S. Singh. Implementing fudgets with standard widget sets. In Glasgow Workshop on Functional Programming 1993, 1993.

    Google Scholar 

  16. R.W. Scheiffler and J. Getty. The X window system. ACM Transactions on Graphics, 5(2), 1986.

    Google Scholar 

  17. S. Singh. Using XView/X11 from Miranda. In Glasgow Workshop on Functional Programming 1991, Workshops in Computing. Springer Verlag, 1992.

    Google Scholar 

  18. D.C. Sinclair. Graphical user interfaces for Haskell. In Glasgow Workshop on Functional Programming. Springer Verlag, 1993.

    Google Scholar 

  19. W. Schulte and T. Vullinghs. Linking reactive software to the X-Window system. Technical Report 94-14, Universität Ulm, December 1994.

    Google Scholar 

  20. Ph. Wadler. Comprehending monads. In Proc. 1990 ACM Conference on Lisp and Functional Programming, 1990.

    Google Scholar 

  21. Ph. Wadler. The essence of functionnal programming. In ACM Principles of Programming Languages, 1992.

    Google Scholar 

  22. Ph. Wadler. Monads and composable continuations. Lisp and Symbolic Computation, pages 39–56, January 1994.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Manuel Hermenegildo S. Doaitse Swierstra

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Vullinghs, T., Tuijnman, D., Schulte, W. (1995). Lightweight GUIs for functional programming. In: Hermenegildo, M., Swierstra, S.D. (eds) Programming Languages: Implementations, Logics and Programs. PLILP 1995. Lecture Notes in Computer Science, vol 982. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0026829

Download citation

  • DOI: https://doi.org/10.1007/BFb0026829

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60359-7

  • Online ISBN: 978-3-540-45048-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics