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.
Preview
Unable to display preview. Download preview PDF.
References
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.
M. Barr and C. Wells. Toposes, Triples and Theories. Springer-Verlag, 1985.
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.
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.
M.P. Jones and L. Duponcheel. Composing monads. Research Report RR-1004, Yale University, December 1993.
M. Jones. Release notes for Gofer 2.28, 1993. Included as part of the standard Gofer distribution.
M.P. Jones. An introduction to Gofer (draft), 1993.
D.J. King and J. Launchbury. Lazy depth-first search and linear graph algorithms in haskell. Technical report, University of Glasgow, 1994.
J. Launchbury and S.L. Peyton Jones. Lazy functional state threads. Technical report, University of Glasgow, November 1994.
E. Moggi. Computational lambda-calculus and monads. In Symposium on Logic in Computer Science, pages 14–23, Washington DC, 1989. IEEE.
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.
J.K. Ousterhout. Tcl and the Tk toolkit. Addison Wesley, 1994.
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.
F. Pessaux and F. Rouaix. The CamlTk interface — release beta2. Available by ftp at ftp.inria.fr, February 1994.
A. Reid and S. Singh. Implementing fudgets with standard widget sets. In Glasgow Workshop on Functional Programming 1993, 1993.
R.W. Scheiffler and J. Getty. The X window system. ACM Transactions on Graphics, 5(2), 1986.
S. Singh. Using XView/X11 from Miranda. In Glasgow Workshop on Functional Programming 1991, Workshops in Computing. Springer Verlag, 1992.
D.C. Sinclair. Graphical user interfaces for Haskell. In Glasgow Workshop on Functional Programming. Springer Verlag, 1993.
W. Schulte and T. Vullinghs. Linking reactive software to the X-Window system. Technical Report 94-14, Universität Ulm, December 1994.
Ph. Wadler. Comprehending monads. In Proc. 1990 ACM Conference on Lisp and Functional Programming, 1990.
Ph. Wadler. The essence of functionnal programming. In ACM Principles of Programming Languages, 1992.
Ph. Wadler. Monads and composable continuations. Lisp and Symbolic Computation, pages 39–56, January 1994.
Author information
Authors and Affiliations
Editor information
Rights 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