Functional programming using F# 1. 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