- Paperback: 500 pages
- Publisher: Manning Publications; 1 edition (January 25, 2010)
- Language: English
- ISBN-10: 1933988924
- ISBN-13: 978-1933988924
- Product Dimensions: 7.4 x 1.1 x 9.2 inches
- Shipping Weight: 2.1 pounds (View shipping rates and policies)
- Average Customer Review: 4.1 out of 5 stars See all reviews (25 customer reviews)
- Amazon Best Sellers Rank: #436,203 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Real-World Functional Programming: With Examples in F# and C# 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
Featured resources for tech professionals
Explore these featured titles, sponsored by Springer. Learn more
Frequently bought together
Customers who bought this item also bought
About the Author
Jon Skeet is a Senior Software Engineer at Google, working in London. He has been involved in the C# community since 2002, initially in newsgroups, then through his blog, user groups, international conferences and the Stack Overflow Q&A site. Jon enjoys putting the language through its paces, finding new and interesting ways to use and abuse it.
Browse award-winning titles. See more
If you are a seller for this product, would you like to suggest updates through seller support?
Top Customer Reviews
Since F# lives in .Net, and .Net is inherently object-oriented; it makes sense to understand something of the mapping that takes place behind the scenes when F# code is mapped into the .Net world.
Many of the interesting new features introduced into C# are actually hand-me-downs from FP (functional programming). This includes generics, LINQ, anonymous methods, lambdas, type inference, etc.. Since many programmers need to use C# in the work-a-day world, it makes sense to understand the functional elements of C# by seeing them in a functional language like F#, where they can be seen in their purest (least hobbled) state. Once these concepts are understood, it is then much easier to understand how to wield these tools effectively in C#.
That said, there are also limits to how much functional programming can be done in C# (and how effectively it can be accomplished). This book clearly demarcates the boundaries of what is (and isn't) feasible in C# vis-à-vis functional programming.
One of the things I liked best about this book is the discussion on why functional programming makes code easier to read, write, and verify. This discussion does not appeal to what might be (for many) inaccessible theory (i.e. denotational semantics, category theory, etc.). Instead it is demonstrated in amazingly simple, straightforward ways! This discussion is very effective.
Another facet of this book's approach that I applaud is the demonstration of lambda calculus. Why would a practical book dabble in theory? There's actually a very pragmatic payoff in doing this: functional programming has a lot of underpinnings in lambda calculus. Those that have been exposed to lambda calculus will feel right at home in F#. Those that haven't are likely to feel more "culture shock" when being exposed to concepts like currying and lazy evaluation. Functional programming really does represent a substantially different way of thinking about computation.
This book also features an excellent discussion about design patterns; comparing and contrasting how they are implemented in OOP (object-oriented programming) versus FP. Some classic design patterns in OOP essentially come for free in FP (e.g. the "visitor" pattern).
An example of what I mean by 'verbiage' - on page 156:
....Let's now analyze how it works in some more detail.
6.4.3 Evaluating the example step by step
It can take some time to become confident with high-order functions like these,
especially when they are nested. We're going to examine how the code from the
previous listing by tracing how it runs for a few sample inputs. Moving from the
abstract question "What does this code do in the general case?" to the concrete
question of "What does this code do in this particular situation?" can often help
to clarify matter
This does not actually say anything - it just introduces what it's going to be written after - that you are going to read in any case. This is a page I opened at random - the book is full of this - constantly telling you what you just read and what you are going to read.
On top of this some more advanced stuff like continuations gets short (and not very illuminating) explanations - that is sort of galling in the middle of all this redundant stuff.
It could have been a good 200-300 pages book, instead it is a mediocre 500+ pages ones.
Most Recent Customer Reviews
The book is well organized, clear and really help you understand Functional Programming...Read more
I would like to recommend it to any .Net developer like me whom wants to discover and learn functional programming without much compromise.Read more