Bridging the GUI gap with reactive values and relations

Perez, Ivan and Nilsson, Henrik (2015) Bridging the GUI gap with reactive values and relations. In: 2015 ACM SIGPLAN Symposium on Haskell (Haskell '15), 3-4 Sept 2015, Vancouver, Canada.

PDF - Requires a PDF viewer such as GSview, Xpdf or Adobe Acrobat Reader
Download (2MB) | Preview


There are at present two ways to write GUIs for functional code. One is to use standard GUI toolkits, with all the benefits they bring in terms of feature completeness, choice of platform, conformance to platform-specific look-and-feel, long-term viability, etc. However, such GUI APIs mandate an imperative programming style for the GUI and related parts of the application. Alternatively, we can use a functional GUI toolkit. The GUI can then be written in a functional style, but at the cost of foregoing many advantages of standard toolkits that often will be of critical importance. This paper introduces a light-weight framework structured around the notions of reactive values and reactive relations . It allows standard toolkits to be used from functional code written in a functional style. We thus bridge the gap between the two worlds, bringing the advantages of both to the developer. Our framework is available on Hackage and has been been validated through the development of non-trivial applications in a commercial context, and with different standard GUI toolkits.

Item Type: Conference or Workshop Item (Paper)
Additional Information: © ACM, 2015. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in ACM SIGPLAN Notices, Volume 50, Issue 12, (December 2015)
Keywords: GUI, pure functional programming, reactive values
Schools/Departments: University of Nottingham UK Campus > Faculty of Science > School of Computer Science
Depositing User: Nilsson, Henrik
Date Deposited: 19 Apr 2016 13:19
Last Modified: 14 Sep 2016 11:39

Actions (Archive Staff Only)

Edit View Edit View