Getting started In this chapter we will introduce some of the main concepts of functional programming languages. In particular we will introduce the concepts of value, expression, declaration, recursive function and type. Furthermore, to explain the meaning of programs we will introduce the notions: binding, environment and evaluation of expressions. The purpose of the chapter is to acquaint the reader with these concepts, in order to address interesting problems from the very beginning. The reader will obtain a thorough knowledge of these concepts and skills in applying them as we elaborate on them throughout this book. There is support of both compilation of F♯ programs to executable code and the execution of programs in an interactive mode. The programs in this book are usually illustrated by the use of the interactive mode. The interface of the interactive F♯ compiler is very advanced as e.g. structured values like tuples, lists, trees and functions can be communicated directly between the user and the system without any conversions. Thus, it is very easy to experiment with programs and program designs and this allows us to focus on the main structures of programs and program designs, i.e. the core of programming, as input and output of structured values can be handled by the F♯ system |