front matter
F# is what I call a “Yes, and . . .” language. In improvisational comedy, an improviser accepts what has been said (“yes”) and expands on the line of thinking (“and . . .”). The F# language design and its ecosystem, toolset, and community adopt a similar philosophy to building software. F# is comfortable for developers from almost any programming background (“yes”), and it adds functional programming idioms that open up an entirely different programming ecosystem (“and . . .”).
F# in Action exemplifies the “Yes, and . . ” concept thoroughly. From the very beginning, the tone is clear: F# is a good fit for many different kinds of applications. You’ll find no ivory towers here, demanding that you rethink everything you know about software, rewrite all your code, and permanently try to jam the purest of functional programming into every bit of your software development life. Instead, the idea that F# is a functional programming language that can bring with it a different way of writing software is rightfully presented as secondary to the productivity gained from writing succinct code in conjunction with a rich ecosystem of libraries and tools.