Abstract
We present a generic library for constructing composable and interactive user interfaces in a declarative style. The paper introduces flowlets, an extension of formlets[3,2] providing interactivity. Real-world examples are given using the current implementation that compiles flowlets defined in F# to JavaScript with WebSharper.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Carlsson, M., Hallgren, T.: FUDGETS: a Graphical User Interface in a Lazy Functional Language. In: FPCA 1993: Proceedings of the Conference on Functional Programming Languages and Computer Architecture, pp. 321–330. ACM, New York (1993)
Cooper, E., Lindley, S., Wadler, P., Yallop, J.: An Idioms Guide to Formlets. Technical report, University of Edinburgh (2008)
Cooper, E., Lindley, S., Wadler, P., Yallop, J.: The Essence of Form Abstraction. In: Sixth Asian Symposium on Programming Languages and Systems (2008)
Cooper, G., Krishnamurthi, S.: Embedding Dynamic Dataflow in a Call-by-Value Language. In: Sestoft, P. (ed.) ESOP 2006. LNCS, vol. 3924, pp. 294–308. Springer, Heidelberg (2006)
Courtney, A., Nilsson, H., Peterson, J.: The Yampa Arcade. In: Haskell 2003: Proceedings of the 2003 ACM SIGPLAN workshop on Haskell, pp. 7–18. ACM, New York (2003)
Elliott, C., Hudak, P.: Functional Reactive Animation. In: ICFP 1997: Proceedings of the Second ACM SIGPLAN International Conference on Functional Programming, pp. 263–273. ACM, New York (1997)
Hudak, P.: Functional Reactive Programming. In: Swierstra, S. (ed.) ESOP 1999. LNCS, vol. 1576, pp. 67–67. Springer, Heidelberg (1999)
Hudak, P., Courtney, A., Nilsson, H., Peterson, J.: Arrows, Robots, and Functional Reactive Programming. In: Jeuring, J., Jones, S. (eds.) AFP 2002. LNCS, vol. 2638, pp. 1949–1949. Springer, Heidelberg (2003)
Leroy, X.: The OCaml Programming Language (1998), http://caml.inria.fr
Meyerovich, L.A., Guha, A., Baskin, J., Cooper, G.H., Greenberg, M., Bromfield, A., Krishnamurthi, S.: Flapjax: a Programming Language for Ajax Applications. In: OOPSLA 2009: Proceeding of the 24th ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, pp. 1–20. ACM, New York (2009)
Moggi, E.: Notions of Computation and Monads. Information and Computation 93(1), 55–92 (1991); Selections from 1989 IEEE Symposium on Logic in Computer Science
Plasmeijer, R., Achten, P.: The Implementation of iData. In: Butterfield, A., Grelck, C., Huch, F. (eds.) IFL 2005. LNCS, vol. 4015, pp. 106–123. Springer, Heidelberg (2006)
Sage, M.: FranTk - a Declarative GUI Language for Haskell. In: ICFP 2000: Proceedings of the Fifth ACM SIGPLAN International Conference on Functional Programming, pp. 106–117. ACM, New York (2000)
Taylor, C.J.: Formalising and Reasoning About Fudgets. Technical Report NOTTCS-TR-98-4, University of Nottingham (1998)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bjornson, J., Tayanovskyy, A., Granicz, A. (2011). Composing Reactive GUIs in F# Using WebSharper. In: Hage, J., Morazán, M.T. (eds) Implementation and Application of Functional Languages. IFL 2010. Lecture Notes in Computer Science, vol 6647. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-24276-2_13
Download citation
DOI: https://doi.org/10.1007/978-3-642-24276-2_13
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-24275-5
Online ISBN: 978-3-642-24276-2
eBook Packages: Computer ScienceComputer Science (R0)