Chapter 2. Fundamentals

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 int and 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 list, option, and 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.

Primitive Types

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 ...

Get Programming F# now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.