Contents of the book
A directory of useful pages
Last updated
Was this helpful?
A directory of useful pages
Last updated
Was this helpful?
will get you started.
An interactive tour of F#.
has tips to help you learn more effectively.
for when you have problems getting your code to compile.
and then you can try...
. You can start right now -- no permission needed!
The following series are tutorials on the key concepts of F#.
starts from basics and explains how and why functions work the way they do.
covers the common expressions such as pattern matching, and has a post on indentation.
explains how to define and use the various types, including tuples, records, unions, and options.
explains how to use types as part of the design process, making illegal states unrepresentable.
. If you are coming to F# from C#, the large number of list functions can be overwhelming, so I have written this post to help guide you to the one you want.
: the lazy programmer's guide to writing 1000's of tests.
demystifies them and shows how you can create your own.
These posts explain some core patterns in functional programming -- concepts such as "map", "bind", monads and more.
These posts provide detailed worked examples with lots of code!
General:
Functions:
Control Flow:
Types:
: A functional approach to error handling
: An introduction to handling state using the tale of Dr Frankenfunctor and the Monadster.
: Reinventing the Reader monad.
: A series describing some of the core functions for dealing with generic data types.
: A mostly mathless discussion of a common functional pattern.
: A look at recursive types, catamorphisms, tail recursion, the difference between left and right folds, and more.
: Creating a parser combinator library from scratch.
: demonstrates many different techniques for implementing a turtle graphics API, including state monads, agents, interpreters, and more!
: How to make illegal states unrepresentable (a shopping cart example).
: Using a simple stack to demonstrate the power of combinators.
: Using pattern matching in conjunction with custom types.
: Another pattern matching example.
: The type-first approach to designing a Calculator.
: A walkthrough of the design decisions in a purely functional implementation
.
that differentiate F# from a standard imperative language.
.
.
.
.
and .
.
.
especially on why .
.
.
.
.
or, why predictability is important.
. My approach to the Roman Numerals Kata.
. A rant against something I don't get.
or, why in many cases, using UML for class diagrams is not necessary.