Chapter 2. Dissecting F# Origins and Design
This chapter reviews F# features from the historical perspective tracking them back to origins where possible. The review covers:
- F# evolvement timeline
- Predecessor inherited language features
- .NET imposed language features
- Intrinsic F# language features
Although F# is a functional-first programming language, at the same time, you should not forget that it is a multi-paradigm tool that allows paradigms to be combined if required. Another important aspect you should keep in mind is that F# is designed for a .NET platform, so certain language facilities are shaped by underlying implementation mechanisms and interoperability requirements. The goal of this chapter is to dissect the language into components in a way that allows you to grasp the origins and the logic behind a contemporary F# design.