Book Image

Mastering F#

By : Alfonso García-Caro Núñez, Suhaib Fahad
Book Image

Mastering F#

By: Alfonso García-Caro Núñez, Suhaib Fahad

Overview of this book

F# is a multi-paradigm programming language that encompasses object-oriented, imperative, and functional programming language properties. Now adopted in a wide range of application areas and is supported both by industry-leading companies who provide professional tools and by an active open community, F# is rapidly gaining popularity as it emerges in digital music advertising, creating music-focused ads for Spotify, Pandora, Shazam, and anywhere on the web. This book will guide you through the basics and will then help you master F#. The book starts by explaining how to use F# with Visual Studio, file ordering, and the differences between F# and C# in terms of usage. It moves on to explain the functional core of F# such as data types, type declarations, immutability, strong type interference, pattern matching, records, F# data structures, sequence expressions, and lazy evaluation. Next, the book takes you through imperative and asynchronous programming, F# type providers, applications, and testing in F#. Finally, we look into using F# with distributed programming and using F# as a suitable language for data science. In short, this book will help you learn F# for real-world applications and increase your productivity with functional programming.
Table of Contents (16 chapters)

F# primitive types


The data types defined in F# are mapped directly with CLR. The following table defines the F# primitive types:

Name

F# type

Suffix

Example

Boolean

bool

true/false

Character

char

'A'

Text string

string

"Hello World!"

Short

int16

s

15s

Unsigned short

uint16

us

100us

Integer

int

(none)

123

Float/ Double

float

(optional) e

2., 1.01, 1.10e10

Unsigned integer

uint32

u

123u

Long

int64

L

9999L

Unsigned long

uint64

UL

9999UL

Single

float32 or single

f, (optional) e

1.0f, 1.01f, 1.01e10f

Decimal

decimal

m

123m

Big integer

bigint

I

123I

Signed byte

sbyte

y

3y

Unsigned byte

byte

uy

5uy

Native integer

nativeint

n

123n

Unsigned native integer

unnativeint

un

123un

The unit type

The unit type is used to indicate the absence of a specific value, but formally describes a set that possesses only a single element denoted...