Functional, Reactive Web Programming in F#

  • Adam GraniczEmail author
  • Loic Denuziere
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10094)


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.


Functional programming Reactive programming F# WebSharper 



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.


  1. 1.
    Granicz, A., Denuziere, L., et al.: The WebSharper website. Accessed 10 Dec 2015
  2. 2.
    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)Google Scholar
  3. 3.
    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). Scholar
  4. 4.
    Cooper, E., Lindley, S., Wadler, P., Yallop, J.: An idioms guide to formlets. Technical report, University of Edinburg (2008)Google Scholar
  5. 5.
    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)Google Scholar
  6. 6.
    Meyerovich, L.A., et al.: Flapjax: a programming language for Ajax applications. In: ACM SIGPLAN Notices, vol. 44 (2009)CrossRefGoogle Scholar
  7. 7.
    Syme, D., Granicz, A., Cisternino, A.: Expert F# 3.0. Springer, Berkeley (2012). Scholar
  8. 8.
    Denuziere, L., Granicz, A., Fowler, S.: Reactive abstractions for functional web applications. In: Implementation and Application of Functional Languages (IFL) (2015)Google Scholar
  9. 9.
    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). Scholar
  10. 10.
    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)Google Scholar
  11. 11.
    Meijer, E.: Reactive extensions (Rx): curing your asynchronous programming blues. In: ACM SIGPLAN Commercial Users of Functional Programming (CUFP), Baltimore, Maryland (2010)Google Scholar
  12. 12.
    Elliott, C., Hudak, P.: Functional reactive animation. In: ICFP 1997, vol. 32, no. 8, pp. 263–273. ACM. New York (1997)CrossRefGoogle Scholar
  13. 13.
    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). Scholar
  14. 14.
    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)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.IntelliFactoryBudapestHungary

Personalised recommendations