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.