Abstract
The functional programming language Clean offers an extensive library, the object I/O library, to programmers to create interactive applications that use Graphical User Interfaces (GUI). Programs are constructed by composition of interactive objects. Interactive objects share state. To support modular programming it is also possible to provide objects with local state. Hierarchies of stateful objects are defined by means of algebraic specifications. Good use is made of the fact that Clean is a strongly typed language. In this paper we show how the evaluation of interactive objects is implemented in the object I/O library. The evaluation can be handled elegantly using lazy evaluation.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Achten, P.M., van Groningen, J.H.G., Plasmeijer, M.J.: High Level Specification of I/O in Functional Languages. In: Launchbury, J., Sansom, P. (eds.) Proceedings Glasgow Workshop on Functional Programming, Workshops in Computing, Ayr, Scotland, July 6-8, pp. 1–17. Springer, Berlin (1992)
Achten, P.M., Plasmeijer, M.J.: The ins and outs of Clean I/O. Journal of Functional Programming 5(1), 81–110 (1995)
Achten, P.M., Plasmeijer, M.J.: Interactive Functional Objects in Clean. In: Clack, C., Hammond, K., Davie, T. (eds.) IFL 1997. LNCS, vol. 1467, pp. 304–321. Springer, Heidelberg (1998)
Achten, P.M., Wierich, M.: A Tutorial to the Clean Object I/O Library - version 1.1. Internal Report, Department of Functional Programming, University of Nijmegen, The Netherlands (1999), Available on Internet: ftp://ftp.cs.kun.nl/pub/Clean/supported/ObjectIO/doc/tutorial.11.ps.gz.
Barendsen, E., Smetsers, J.E.W.: Uniqueness Type Inference. In: [10], pp. 189–206
Bjørner, D., Broy, M., Pottosin, I.V. (eds.): PSI 1996. LNCS, vol. 1181. Springer, Heidelberg (1996)
Brus, T., van Eekelen, M.C.J.D., Leer, M.O., Plasmeijer, M.J.: Clean: A Language for Functional Graph Rewriting. In: Kahn, G. (ed.) FPCA 1987. LNCS, vol. 274, pp. 364–384. Springer, Heidelberg (1987)
Carlsson, M., Hallgren, T.: FuDGETS - A Graphical User Interface in a Lazy Functional Language. In: Proceedings of Conference on Functional Programming Languages and Computer Architecture, Copenhagen, Denmark, June 9-11, pp. 321–330. ACM Press, New York (1993)
Frauenstein, T., Grieskamp, W., Pepper, P., Südholt.: Communicating Functional Agents and Their Application to Graphical User Interfaces. In: [6], pp. 386–397
Hermenegildo, M., Swierstra, S.D. (eds.): PLILP 1995. LNCS, vol. 982. Springer, Heidelberg (1995)
Jones, M.P.: A system of constructor classes: overloading and implicit higher-order polymorphism. In: Proceedings of Conference on Functional Programming Languages and Computer Architecture, Copenhagen, Denmark, June 9-11, pp. 52–61. ACM Press, New York (1993)
Noble, R., Runciman, C.: Gadgets: Lazy Functional Components for Graphical User Interfaces. In: [10], pp. 321-340
Nöcker, E.G.J.M.H., Smetsers, J.E.W., van Eekelen, M.C.J.D., Plasmeijer, M.J.: Concurrent Clean. In: Aarts, E.H.L., van Leeuwen, J., Rem, M. (eds.) PARLE 1991. LNCS, vol. 506, pp. 202–219. Springer, Heidelberg (1991)
Plasmeijer, M.J., van Eekelen, M.C.J.D.: Functional Programming and Parallel Graph Rewriting. Addison-Wesley Publishing Company, Reading (1993)
Scholz, E.: PlDGETS - Unifying Pictures and Widgets in a Constraint-Based Framework for Concurrent GUI Programming. In: Kuchen, H., Swierstra, S.D. (eds.) PLILP 1996. LNCS, vol. 1140, pp. 363–377. Springer, Heidelberg (1996)
Smetsers, J.E.W., Barendsen, E., van Eekelen, M.C.J.D., Plasmeijer, M.J.: Guaranteeing Safe Destructive Updates through a Type System with Uniqueness Information for Graphs. In: Ehrig, H., Schneider, H.-J. (eds.) Dagstuhl Seminar 1993. LNCS, vol. 776, pp. 358–379. Springer, Heidelberg (1994)
Vullinghs, T., Schulte, W., Schwinn, T.: The Design of a Functional GUI Library Using Constructor Classes. In: [6], pp. 398–408
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Achten, P., Plasmeijer, R. (2000). The Implementation of Interactive Local State Transition Systems in Clean. In: Koopman, P., Clack, C. (eds) Implementation of Functional Languages. IFL 1999. Lecture Notes in Computer Science, vol 1868. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10722298_7
Download citation
DOI: https://doi.org/10.1007/10722298_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67864-9
Online ISBN: 978-3-540-44658-3
eBook Packages: Springer Book Archive