> For the complete documentation index, see [llms.txt](https://swlaschin.gitbook.io/fsharpforfunandprofit/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://swlaschin.gitbook.io/fsharpforfunandprofit/why-use-f/why-use-fsharp.md).

# The "Why use F#?" Series

This series of posts will give you a guided tour through the main features of F# and then show you ways that F# can help you in your day-to-day development.

* [Introduction to the 'Why use F#' series](/fsharpforfunandprofit/why-use-f/why-use-fsharp/why-use-fsharp-intro.md). An overview of the benefits of F#.
* [F# syntax in 60 seconds](/fsharpforfunandprofit/why-use-f/why-use-fsharp/fsharp-in-60-seconds.md). A very quick overview on how to read F# code.
* [Comparing F# with C#: A simple sum](/fsharpforfunandprofit/why-use-f/why-use-fsharp/fvsc-sum-of-squares.md). In which we attempt to sum the squares from 1 to N without using a loop.
* [Comparing F# with C#: Sorting](/fsharpforfunandprofit/why-use-f/why-use-fsharp/fvsc-quicksort.md). In which we see that F# is more declarative than C#, and we are introduced to pattern matching..
* [Comparing F# with C#: Downloading a web page](/fsharpforfunandprofit/why-use-f/why-use-fsharp/fvsc-download.md). In which we see that F# excels at callbacks, and we are introduced to the 'use' keyword.
* [Four Key Concepts](/fsharpforfunandprofit/why-use-f/why-use-fsharp/key-concepts.md). The concepts that differentiate F# from a standard imperative language.
* [Conciseness](/fsharpforfunandprofit/why-use-f/why-use-fsharp/conciseness-intro.md). Why is conciseness important?.
* [Type inference](/fsharpforfunandprofit/why-use-f/why-use-fsharp/conciseness-type-inference.md). How to avoid getting distracted by complex type syntax.
* [Low overhead type definitions](/fsharpforfunandprofit/why-use-f/why-use-fsharp/conciseness-type-definitions.md). No penalty for making new types.
* [Using functions to extract boilerplate code](/fsharpforfunandprofit/why-use-f/why-use-fsharp/conciseness-extracting-boilerplate.md). The functional approach to the DRY principle.
* [Using functions as building blocks](/fsharpforfunandprofit/why-use-f/why-use-fsharp/conciseness-functions-as-building-blocks.md). Function composition and mini-languages make code more readable.
* [Pattern matching for conciseness](/fsharpforfunandprofit/why-use-f/why-use-fsharp/conciseness-pattern-matching.md). Pattern matching can match and bind in a single step.
* [Convenience](/fsharpforfunandprofit/why-use-f/why-use-fsharp/convenience-intro.md). Features that reduce programming drudgery and boilerplate code.
* [Out-of-the-box behavior for types](/fsharpforfunandprofit/why-use-f/why-use-fsharp/convenience-types.md). Immutability and built-in equality with no coding.
* [Functions as interfaces](/fsharpforfunandprofit/why-use-f/why-use-fsharp/convenience-functions-as-interfaces.md). OO design patterns can be trivial when functions are used.
* [Partial Application](/fsharpforfunandprofit/why-use-f/why-use-fsharp/convenience-partial-application.md). How to fix some of a function's parameters.
* [Active patterns](/fsharpforfunandprofit/why-use-f/why-use-fsharp/convenience-active-patterns.md). Dynamic patterns for powerful matching.
* [Correctness](/fsharpforfunandprofit/why-use-f/why-use-fsharp/correctness-intro.md). How to write 'compile time unit tests'.
* [Immutability](/fsharpforfunandprofit/why-use-f/why-use-fsharp/correctness-immutability.md). Making your code predictable.
* [Exhaustive pattern matching](/fsharpforfunandprofit/why-use-f/why-use-fsharp/correctness-exhaustive-pattern-matching.md). A powerful technique to ensure correctness.
* [Using the type system to ensure correct code](/fsharpforfunandprofit/why-use-f/why-use-fsharp/correctness-type-checking.md). In F# the type system is your friend, not your enemy.
* [Worked example: Designing for correctness](/fsharpforfunandprofit/examples-and-walkthroughs/designing-for-correctness.md). How to make illegal states unrepresentable.
* [Concurrency](/fsharpforfunandprofit/why-use-f/why-use-fsharp/concurrency-intro.md). The next major revolution in how we write software?.
* [Asynchronous programming](/fsharpforfunandprofit/why-use-f/why-use-fsharp/concurrency-async-and-parallel.md). Encapsulating a background task with the Async class.
* [Messages and Agents](/fsharpforfunandprofit/why-use-f/why-use-fsharp/concurrency-actor-model.md). Making it easier to think about concurrency.
* [Functional Reactive Programming](/fsharpforfunandprofit/why-use-f/why-use-fsharp/concurrency-reactive.md). Turning events into streams.
* [Completeness](/fsharpforfunandprofit/why-use-f/why-use-fsharp/completeness-intro.md). F# is part of the whole .NET ecosystem.
* [Seamless interoperation with .NET libraries](/fsharpforfunandprofit/why-use-f/why-use-fsharp/completeness-seamless-dotnet-interop.md). Some convenient features for working with .NET libraries.
* [Anything C# can do...](/fsharpforfunandprofit/why-use-f/why-use-fsharp/completeness-anything-csharp-can-do.md). A whirlwind tour of object-oriented code in F#.
* [Why use F#: Conclusion](/fsharpforfunandprofit/why-use-f/why-use-fsharp/why-use-fsharp-conclusion.md). .
