Why use FSharp - Link to site
- Chapter 1 - Introduction to the 'Why use F#' series
- Chapter 2 - F# syntax in 60 seconds
- Chapter 3 - Comparing F# with C#: A simple sum
- Chapter 4 - Comparing F# with C#: Sorting
- Chapter 5 - Comparing F# with C#: Downloading a web page
- Chapter 6 - Four Key Concepts
- Chapter 7 - Conciseness
- Chapter 8 - Type inference
- Chapter 9 - Low overhead type definitions
- Chapter 10 - Using functions to extract boilerplate code
- Chapter 11 - Using functions as building blocks
- Chapter 12 - Pattern matching for conciseness
- Chapter 13 - Convenience
- Chapter 14 - Out-of-the-box behavior for types
- Chapter 15 - Functions as interfaces
- Chapter 16 - Partial Application
- Chapter 17 - Active patterns
- Chapter 18 - Correctness
- Chapter 19 - Immutability
- Chapter 20 - Exhaustive pattern matching
- Chapter 21 - Using the type system to ensure correct code
- Chapter 22 - Worked example: Designing for correctness
- Chapter 23 - Concurrency
- Chapter 24 - Asynchronous programming
- Chapter 25 - Messages and Agents
- Chapter 26 - Functional Reactive Programming
- Chapter 27 - Completeness
- Chapter 28 - Seamless interoperation with .NET libraries
- Chapter 29 - Anything C# can do...
- Chapter 30 - Why use F#: Conclusion