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’ll provide the necessary foundation for you to understand that code fully, but more importantly, I’ll 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’ll then cover functions so that you can manipulate data.
The third section details foundational types such as
unit. Mastering how to use these
types will enable 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 will 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—while 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 ...