The Book of F#: Breaking Free with Managed Functional Programming

The Book of F#: Breaking Free with Managed Functional Programming

by Dave Fancher


$43.26 $44.95 Save 4% Current price is $43.26, Original price is $44.95. You Save 4%.
View All Available Formats & Editions
Eligible for FREE SHIPPING
  • Want it by Wednesday, September 26?   Order by 12:00 PM Eastern and choose Expedited Shipping at checkout.


The Book of F#: Breaking Free with Managed Functional Programming by Dave Fancher

F# brings the power of functional-first programming to the .NET Framework, a platform for developing software in the Microsoft Windows ecosystem. If you're a traditional .NET developer used to C# and Visual Basic, discovering F# will be a revelation that will change how you code, and how you think about coding.

In The Book of F#, Microsoft MVP Dave Fancher shares his expertise and teaches you how to wield the power of F# to write succinct, reliable, and predictable code. As you learn to take advantage of features like default immutability, pipelining, type inference, and pattern matching, you'll be amazed at how efficient and elegant your code can be.

You'll also learn how to:

  • Exploit F#'s functional nature using currying, partial application, and delegation
  • Streamline type creation and safety with record types and discriminated unions
  • Use collection types and modules to handle data sets more effectively
  • Use pattern matching to decompose complex types and branch your code within a single expression
  • Make your software more responsive with parallel programming and asynchronous workflows
  • Harness object orientation to develop rich frameworks and interact with code written in other .NET languages
  • Use query expressions and type providers to access and manipulate data sets from disparate sources

Break free of that old school of programming. The Book of F# will show you how to unleash the expressiveness of F# to create smarter, leaner code.

Product Details

ISBN-13: 9781593275525
Publisher: No Starch Press
Publication date: 03/25/2014
Pages: 312
Sales rank: 1,253,677
Product dimensions: 7.00(w) x 9.10(h) x 0.90(d)

About the Author

Dave Fancher has been developing software with the .NET Framework for more than a decade. He is a familiar face in the Indiana development community as both a speaker and participant in user groups around the state. In July 2013, Dave was recognized as a Microsoft MVP (Most Valuable Professional) for Visual F#. When not writing code or writing about code at, he can often be found watching a movie or gaming on his Xbox One.

Table of Contents

About the Author;
About the Technical Reviewer;
Whom Is This Book For?;
How Is This Book Organized?;
Additional Resources;
Chapter 1: Meet F#;
1.1 F# in Visual Studio;
1.2 Significance of Whitespace;
1.3 Grouping Constructs;
1.4 Expressions Are Everywhere;
1.5 Application Entry Point;
1.6 Implicit Return Values;
1.7 Your First F# Program;
1.8 Summary;
Chapter 2: F# Interactive;
2.1 Running F# Interactive;
2.2 F# Interactive Output;
2.3 The it Identifier;
2.4 Playing in the Sandbox;
2.5 Scripting;
2.6 F# Interactive Options;
2.7 Summary;
Chapter 3: Fundamentals;
3.1 Immutability and Side Effects;
3.2 Functional Purity;
3.3 Bindings;
3.4 Identifier Naming;
3.5 Core Data Types;
3.6 Type Inference;
3.7 Nullability;
3.8 Enumerations;
3.9 Flow Control;
3.10 Generics;
3.11 When Things Go Wrong;
3.12 String Formatting;
3.13 Type Abbreviations;
3.15 Summary;
Chapter 4: Staying Objective;
4.1 Classes;
4.2 Structures;
4.3 Inheritance;
4.4 Static Members;
4.5 Mutually Recursive Types;
4.6 Interfaces;
4.7 Custom Operators;
4.8 Object Expressions;
4.9 Type Extensions;
4.10 Summary;
Chapter 5: Let’s Get Functional;
5.1 What Is Functional Programming?;
5.2 Programming with Functions;
5.3 Currying;
5.4 Recursive Functions;
5.5 Lambda Expressions;
5.6 Closures;
5.7 Functional Types;
5.8 Discriminated Unions;
5.9 Lazy Evaluation;
5.10 Summary;
Chapter 6: Going to Collections;
6.1 Sequences;
6.2 Arrays;
6.3 Lists;
6.4 Sets;
6.5 Maps;
6.6 Converting Between Collection Types;
6.7 Summary;
Chapter 7: Patterns, Patterns, Everywhere;
7.1 Match Expressions;
7.2 Exhaustive Matching;
7.3 Matching Constant Values;
7.4 Identifier Patterns;
7.5 Matching Nulls;
7.6 Matching Tuples;
7.7 Matching Records;
7.8 Matching Collections;
7.9 Matching by Type;
7.10 As Patterns;
7.11 Combining Patterns with AND;
7.12 Combining Patterns with OR;
7.13 Parentheses in Patterns;
7.14 Active Patterns;
7.15 Partial Active Patterns;
7.16 Parameterized Active Patterns;
7.17 Summary;
Chapter 8: Measuring Up;
8.1 Defining Measures;
8.2 Measure Formulas;
8.3 Applying Measures;
8.4 Stripping Measures;
8.5 Enforcing Measures;
8.6 Ranges;
8.7 Converting Between Measures;
8.8 Generic Measures;
8.9 Custom Measure-Aware Types;
8.10 Summary;
Chapter 9: Can I Quote You on that?;
9.1 Comparing Expression Trees and Quoted Expressions;
9.2 Composing Quoted Expressions;
9.3 Decomposing Quoted Expressions;
9.4 Summary;
Chapter 10: Show Me the Data;
10.1 Query Expressions;
10.2 Type Providers;
10.3 Summary;
Chapter 11: Asynchronous and Parallel Programming;
11.1 Task Parallel Library;
11.2 Asynchronous workflows;
11.3 Agent-Based Programming;
11.4 Summary;
Chapter 12: Computation Expressions;
12.1 Anatomy of a Computation Expression;
12.2 Example: FizzBuzz;
12.3 Example: Building Strings;
12.4 Summary;

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews