Abstract
In these lecture notes, we present the basics of functional and reactive web programming through WebSharper, a mature web development framework for F# [7], and its UI.Next [9] library for constructing reactive markup with two-way data binding. You will learn the theory behind similar technologies, discover its advantages, and develop simple applications using the concepts learned.
Keywords
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Granicz, A., Denuziere, L., et al.: The WebSharper website. http://websharper.com. Accessed 10 Dec 2015
Syme, D., Battocchi, K., Takeda, K., Malayeri, D., Petricek, T.: Themes in information-rich functional programming for internet-scale data sources. In: Proceedings of the Workshop on Data-Driven Functional Programming (DDFP), Rome, Italy (2013)
Bjornson, J., Tayanovskyy, A., Granicz, A.: Composing reactive GUIs in F# using WebSharper. In: Hage, J., Morazán, M.T. (eds.) IFL 2010. LNCS, vol. 6647, pp. 203–216. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-24276-2_13
Cooper, E., Lindley, S., Wadler, P., Yallop, J.: An idioms guide to formlets. Technical report, University of Edinburg (2008)
Denuziere, L., Rodriguez, E., Granicz, A.: Piglets to the rescue. In: 25th Symposium on Implementation and Application of Functional Languages, IFL 2013, Nijmegen, The Netherlands (2013)
Meyerovich, L.A., et al.: Flapjax: a programming language for Ajax applications. In: ACM SIGPLAN Notices, vol. 44 (2009)
Syme, D., Granicz, A., Cisternino, A.: Expert F# 3.0. Springer, Berkeley (2012). https://doi.org/10.1007/978-1-4302-4651-0
Denuziere, L., Granicz, A., Fowler, S.: Reactive abstractions for functional web applications. In: Implementation and Application of Functional Languages (IFL) (2015)
Fowler, S., Denuzière, L., Granicz, A.: Reactive single-page applications with dynamic dataflow. In: Pontelli, E., Son, T.C. (eds.) PADL 2015. LNCS, vol. 9131, pp. 58–73. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-19686-2_5
Denuziere, L., Granicz, A.: Enabling modular persistence for reactive data models in F# client-server web applications. In: Constrained and Reactive Objects Workshop (CROW) (2016)
Meijer, E.: Reactive extensions (Rx): curing your asynchronous programming blues. In: ACM SIGPLAN Commercial Users of Functional Programming (CUFP), Baltimore, Maryland (2010)
Elliott, C., Hudak, P.: Functional reactive animation. In: ICFP 1997, vol. 32, no. 8, pp. 263–273. ACM. New York (1997)
Hudak, P., Courtney, A., Nilsson, H., Peterson, J.: Arrows, robots, and functional reactive programming. In: Jeuring, J., Jones, S.L.P. (eds.) AFP 2002. LNCS, vol. 2638, pp. 159–187. Springer, Heidelberg (2003). https://doi.org/10.1007/978-3-540-44833-4_6
Czaplicki, E., Chong, S.: Asynchronous functional reactive programming for GUIs. In: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2013, New York, NY, USA, pp. 411–422 (2013)
Acknowledgements
UI.Next and the larger WebSharper ecosystem is the work of many individuals. The authors would like thank their past IntelliFactory colleagues Simon Fowler and Anton Tayanovskyy for their work on the initial version of UI.Next, and Andras Janko for his work on WebSharper and its templating support.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Granicz, A., Denuziere, L. (2019). Functional, Reactive Web Programming in F#. In: Zsók, V., Porkoláb, Z., Horváth, Z. (eds) Central European Functional Programming School. CEFP 2015. Lecture Notes in Computer Science(), vol 10094. Springer, Cham. https://doi.org/10.1007/978-3-030-28346-9_5
Download citation
DOI: https://doi.org/10.1007/978-3-030-28346-9_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-28345-2
Online ISBN: 978-3-030-28346-9
eBook Packages: Computer ScienceComputer Science (R0)