F# as your first functional programming language

F# Resources

This is an opinionated list of web resources and books that helped me with F#. These are books and sites I use frequently, for a more a complete list of resources, check the list of the F# Foundation and the learning resources in Microsoft .NET site.

Books

  • Stylish F# 6 by Kit Eason. Loved the first chapter about the sense of style in programming, and the next chapters follows that spirit.

  • Essential Functional-First F#, by Ian Russell. With a big difference from other approaches, this book starts with a full example in F# that is througly discussed, and then presents the elements of the language in the next chapters.

  • Beginning F# 4.0, by Robert Pickering and Kit Eason. Just a little outdated (we are now at version 7.0), approaches the language from its different paradigms, from functional to object oriented to imperative programming.

  • Expert F# 4.0, by Don Syme, Adam Granicz, Antonio Cisternino. By the very same creator of the language, it also showcases the flexibility of F# to adopt different programming paradigms. The examples are advanced in general, but useful to understand deeply the inner works of F#.

Functional Programming with F#

Web Development resources

  • Fable, the amazing transpiler from F# to JavaScript (and lately, other languages. Is not just a compiler, but a way to use these languages together. Depending on the recipe you would like to prepare, add the ingredients at your own pleasure. Also, check Fable REPL, where you can sketch with F#, no installation of anything needed

  • Feliz is kind of hard to define, but basically it enables you to build and/or interact with React components directly in F#.

  • Feliz.Bulma is a wrapper around the well-known Bulma CSS framework, tailored to the Feliz DSL.

  • Html2Feliz enables you to translate plain HTML into Feliz.

  • SAFE Stack is a full fledged F# framework to build web applications. It takes care of the front end, the backend and even the deployment into the Azure cloud.

High performance F#

  • Topological sort in F# by Matthew Crews. In this fantastic series, Matthews starts with a pure functional version of a topological sort, and squeezes all the (rather advanced to me) features of F# to speed up the code.

Misc stuff

fun stuff

The interview.

2023-01-21