Journal of Functional Programming



Article

Programming graphical user interfaces with Scheme


ERICK GALLESIO a1 and MANUEL SERRANO a2
a1 Université de Nice Sophia-Antipolis, 650, route des Colles, B.P. 145, F-06903 Sophia-Antipolis, Cedex, France (e-mail: Erick.Gallesio@unice.fr)
a2 Université de Nice Sophia-Antipolis, 650, route des Colles, B.P. 145, F-06903 Sophia-Antipolis, Cedex, France (e-mail: Manuel.Serrano@unice.fr)

Abstract

This paper presents Biglook, a widget library for an extended version of the Scheme programming language. It uses classes of a Clos-like object layer to represent widgets and Scheme closures to handle graphical events. Combining functional and object-oriented programming styles yields an original application programming interface that advocates a strict separation between the implementation of the graphical interfaces and the user-associated commands, enabling compact source code. The Biglook implementation separates the Scheme programming interface and the native back-end. This permits different ports for Biglook. The current version uses GTK+ and Swing graphical toolkits, while the previous release used Tk.