Expert F# 2.0 is about practical programming in a beautiful language that puts the power and elegance of functional programming into the hands of professional developers. In combination with .NET, F# achieves unrivaled levels of programmer productivity and program clarity.

Full Description

  • ISBN13: 978-1-4302-2431-0
  • User Level: Intermediate to Advanced
  • Publication Date: June 6, 2010
  • Available eBook Formats: EPUB, MOBI, PDF
  • Print Book Price: $74.99
  • eBook Price: $52.99
Buy eBook Buy Print Book Add to Wishlist

Related Titles

Full Description

Expert F# 2.0 is about practical programming in a beautiful language that puts the power and elegance of functional programming into the hands of professional developers. In combination with .NET, F# achieves unrivaled levels of programmer productivity and program clarity.

Expert F# 2.0 is

  • The authoritative guide to F# by the inventor of F#
  • A comprehensive reference of F# concepts, syntax, and features
  • A treasury of expert F# techniques for practical, real-world programming

F# isn't just another functional programming language. It's a general-purpose language ideal for real-world development. F# seamlessly integrates functional, imperative, and object-oriented programming styles so you can flexibly and elegantly solve any programming problem. Whatever your background, you’ll find that F# is easy to learn, fun to use, and extraordinarily powerful. F# will change the way you think about–and go about–programming.

Written by F#'s inventor and two major contributors to its development, Expert F# 2.0 is the authoritative, comprehensive, and in-depth guide to the language and its use. Designed to help others become experts, the first part of the book quickly yet carefully describes the F# language. The second part then shows how to use F# elegantly for a wide variety of practical programming tasks.

The world's foremost experts in F# show you how to program in F# the way they do!

What you’ll learn

  • Explore F# and its features quickly and thoroughly in the introductory chapters
  • Use F# with the newest .NET technologies such as WPF, LINQ, and ASP.NET AJAX
  • Build reactive, asynchronous, and distributed applications with F#
  • Interoperate with F# from other .NET languages, especially C#
  • Test, profile, and performance tune F# applications
  • Work with real-life examples and advanced programming features

Who this book is for

Expert F# 2.0 is for anyone interested in state-of-the art .NET programming. Professional programmers will find it engrossing. F# provides invaluable insight into the future of both C# and VB, which are now adopting some (but far from all) of the functional features of F#. Once programmers learn F#, few feel like returning to either C# or VB. The academic community will find F# the answer to a decades-long prayer: a language suitable for teaching computer science that also excites and empowers students because it can be used not just in the classroom, but also in the real world.

Table of Contents

Table of Contents

  1. Introduction
  2. Getting Started with F# and NET
  3. Creating Your First F# Program—Introducing Functional Programming
  4. Introducing Imperative Programming
  5. Mastering Types and Generics
  6. Working with Objects and Modules
  7. Encapsulating and Packaging Your Code
  8. Mastering F#: Common Techniques
  9. Introducing Language-Oriented Programming
  10. Using the F# and NET Libraries
  11. Building Graphical User Interfaces
  12. Working with Symbolic Representations
  13. Reactive, Asynchronous, and Parallel Programming
  14. Building Smart Web Applications
  15. Working with Data
  16. Lexing and Parsing
  17. Interoperating with C and COM
  18. Debugging and Testing F# Programs
  19. Designing F# Libraries
Source Code/Downloads

Downloads are available to accompany this book.

Your operating system can likely extract zipped downloads automatically, but you may require software such as WinZip for PC, or StuffIt on a Mac.

Errata

Please Login to submit errata.

On page 125:
Member function ShiftX is defined as v.ShiftX(x) = { v with DX=v.DX+x }.
Line 23 says "Here the object is v, and the argument is dx." This should be corrected to "Here the object is v, and the argument is x."

On page 182:

The example returns the object for the Contains method, but the interface and implementation doesn't include the part for ClosestPrefixMatch.

On page 230:

There is a missing method from AttemptBuilder type declaration. Add this method to AttemptBuilder declaration to de-sugar 'return!' inside computation expressions.

/// Identity function for an Attempt value.
/// Used to de-sugar uses of 'return!' inside computation expressions.
member b.ReturnFrom(x) = x

On page 438:

in "Expressing Some Queries Using Sequence Expressions", the first two code are identical.