Tomas discovered functional programming as a student at Charles University in Prague. He has been a Microsoft C# MVP since 2004 and is one of the most active members in the F# community. In addition to his work with F#, he has been using C# 3.0 in a functional way since the early previews in 2005. He interned with the F# team at Microsoft Research, and he has developed a client/server web framework for F# called F# WebTools. His articles on functional programming in .NET and various other topics can be found at his web site http://tomasp.net.
Start reading today through the Manning Early Access Program!
15 August 2008
15 August 2008
11 August 2008
10 August 2008
This book is published by Manning Publications. You can find more interesting books from them on their web.
Find more information such as the TOC and free chapters.
Follow a reference to the web site from the book text.
Discuss available chapters, send your ideas and suggestions.
Download F# and C# projects for the published chapters.
Read related functional articles and book references.
Functional programming languages are astonishing for their ability to express ideas in a succinct, declarative way. In the recent years, they became a compeling alternative thanks to their ability to handle the concurrent programming requirements of multi-processor applications. Many of the functional ideas are now available in main-stream langauges including C# 3.0 and Microsoft recently decided to productize functional .NET language called F#.
Real World Functional Programming written by Tomas Petricek explores functional programming through the F# and C# languages and presents the new F# language as well as several advanced C# 3.0 concepts. It shows how functional programming differs from other approaches and explains how the ideas look in their clear form in F# as well as how they can be successfully used to solve programming problems in C#. Moving beyond the theory, this book also provides practical examples that apply functional programming to the day-to-day tasks you face as a .NET developer.

I believe that the LINQ project and changes in C# 3.0 and VB 9 are interesting because they allow rewriting of many ideas from functional programming. An ability to express queries easily is one of these ideas, but it is definitely not the only one. There are many other interesting ideas. The C# 3.0 language isn't primary a functional language, so it isn't easy to discover the idea if you use only C#, but it is possible to implement it if you know the idea already.
I already wrote a few interesting C# examples that were inspired by some functional idea. I'm a big fan of the F# language, so it is not a surprise that I started with an F# version of the problem and then looked at the way to do the same thing in C#. In particular, this is how my article about building dynamic queries in C# came to the existence - the F# version used FLINQ and Quotations and then I demonstrated how to do the same in C# using expression trees. Another example is my article about asynchronous programming in C# using iterators, which shows how to implement something like F# asynchronous workflows using iterators in C# 2.0.
Today, I'm going to look at another very interesting idea from functional programming. It is called Functional Reactive Programming and it comes from the Haskell community. You can find a list of related Haskell projects here. However, similar things (though they are not purely functional and simplified) are available in the F# language as well. Don Syme introduced them in his blog post called F# First Class Events: Simplicity and Compositionality in Imperative Reactive Programming. In this article, I'm going to briefly introduce the implementation available in F# and I'll extend it a little bit to allow some more interesting things. In the second article from this series, I'll show how to implement the same thing in C# 3.0 (and in VB 9 too!)
Read the complete article
Tomas Petricek | November 16, 2008
About a year ago, I wrote an article about infinite sequences on MSDN. I remembered about it this week, because these topics will be discussed in the book I'm working on as well...
Recently, I announced on my blog that I’m working on a book for Manning called Real-world Functional Programming in .NET. It is more than a month since I wrote about it, so here is a brief update...
If you’ve been reading my blog or seen some my articles, you know that I’m a big fan of the F# language and functional programming style. Today, I'm very pleased to announce that I'm writing a book on this topic!
In the fourth article of the F# overview series, I will shortly describe how I understad the language oriented paradigm and how the F# language can be used for developing libraries using this paradigm.
In the third part of the F# overview, we will look at the F# features that are essential for a smooth interoperability with other .NET languages and form a second part of the F# core language - that is object oriented and imperative programming.