In Chapter 1, you wrote your first F# program. I broke it down to give you a feel for what you were doing, but much of the code is still a mystery. In this chapter, I provide the necessary foundation for you to understand that code fully, but more importantly, I present several more examples that you can use to grasp the basics of F# before you move on to the more complex features.
The first section of this chapter covers primitive types, like
string, which are the building blocks for all F#
programs. I then cover functions so you can manipulate data.
The fourth section details foundational types such as
unit. Mastering these types enables
you to expand into the object-oriented and functional styles of F# code
covered in later chapters.
By the end of this chapter, you will be able to write simple F# programs for processing data. In future chapters, you learn how to add power and expressiveness to your code, but for now, let’s master the basics.
A type is a concept or abstraction, and is primarily about enforcing safety. Types represent a proof of sorts if a conversion will work. Some types are straightforward (representing an integer), whereas others are far more abstract (like a function). F# is statically typed, meaning that type checking is done at compile time. For example, if a function accepts an integer as a parameter, you will get a compiler error if you try to pass in a string.
Like C# and VB.NET, F# supports the ...