One comment I hear often is a complaint about the gap between theory and practice in F# and functional programming in general. In other words, you know the theory, but how do you actually design and implement an application using FP principles?
So I thought it might be useful to show you how I personally would go about designing and implementing some little applications from beginning to end.
These will be sort of annotated live coding sessions. I’ll take you through my thought process at each stage, including backtracking and refactoring.
1. Calculator Walkthrough: Part 1
The type-first approach to designing a Calculator
2. Calculator Walkthrough: Part 2
Testing the design with a trial implementation
3. Calculator Walkthrough: Part 3
Adding the services and user interface, and dealing with disaster
4. Calculator Walkthrough: Part 4
Designing using a state machine
5. Enterprise Tic-Tac-Toe
A walkthrough of the design decisions in a purely functional implementation
6. Enterprise Tic-Tac-Toe, part 2
In which I throw away the previous design, and switch to a capability-centric approach