Functional programming languages like F#, Erlang, and Scala are attracting attention as an efficient way to handle the new requirements for programming multi-processor and high-availability applications. Microsoft's new F# is a true functional language and C# uses functional language features for LINQ and other recent advances.
Real-World Functional Programming is a unique tutorial that explores the functional programming model through the F# and C# languages. The clearly presented ideas and examples teach readers how functional programming differs from other approaches. It explains how ideas look in F#-a functional language-as well as how they can be successfully used to solve programming problems in C#. Readers build on what they know about .NET and learn where a functional approach makes the most sense and how to apply it effectively in those cases.
The reader should have a good working knowledge of C#. No prior exposure to F# or functional programming is required.
Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.
This one was amazingly interesting to read! I started to learn F# and the ways of functional programming with this book. Despite the fact that it covers more functional approaches in comparison to imperative code, it still has a lot to learn about he F# syntax as well. Moreover, I found a lot of answers about immutability and state and how all of this fits the real-world cases. There's even more to this book than meets the eye! Last chapters shred some light on what is reactive functional programming and the actor model in a brief fashion. It's a definite 5 stars from me, cause I learned a lot from this book. Recommend!
Not my first book about Functional Programming but definitely the first one that really showed me the difference between imperative and functional implementation. Not only my Functional coding skills has been improved, but also my vision in how functional aspects can be implemented in an Object-Oriented context.
This book's title might be "Real World Programming in F# and C#" since authors teach how impure functional programming was implemented in these languages and how to combine that functional paradigm with the other ones these languages have. You shouldn't read this book if you want to learn pure functional programming from scratch. This book is perfect if you want to learn how to program with C# or F# in less code lines.
I started this book more than a year ago, and have been reading it on and off. I picked it up while I was on a bit of an F# kick, trying to learn what I could about F# and functional programming in general. I have to admit that I skimmed the last couple of chapters today, just so I could mark this as "read" and move on.
This is actually a good book for picking up some functional programming concepts in F#. For me, the C# code served primarily as a way to grasp some of the concepts, as implemented in a familiar language, compared to the F# implementation, which always seemed a bit alien to me. I think that, if you wanted to read this to learn functional programming in C#, with the idea that you would actually implement real code based on the C# examples, you'd be a bit disappointed, as the C# code doesn't seem really practical to me.
If you're a C# programmer reading this book to learn more about F# and functional programming, then I think it's a good book for that purpose. I will admit to having some trouble understanding some of the more advanced code and concepts, but that's probably on me, and not the fault of the authors.
I liked the begining chapters of this book and i really got quite a good grasp on F# programming (at least being able to read F# code).
I didn't like the fact that the examples were too much into UI programming. Just too many complicated examples combining async, parallelism, and observables with MouseClick fkin events....too hard to grok.
F# in hindshight gets muddy when you start using C# constructs , C# syntactic sugar...
I was expecting the focus to be more on Data Science domains...more on domain modelling, maybe more on interfacing C# with F# (though the last one exists)
What i can say after reading this book is that F# should be used in decoupled modules treating exactly the business logic while trying to move all infrastructure code to C#.
A good book for intro, but i felt that Scott Wlaschin does a far better job in DDD with F# by keeping it simple, focusing on F# features (discriminated unions, async , monads etc...)
This entire review has been hidden because of spoilers.
The book has its flaws, but overall it is pretty good. It gives a nice gentle introduction to functional programming. I could do without most of the C# examples, but they are occasionally intersting and easy to skip over. The constant reminders as to what has been covered and what will be covered later can be annoying at times. The programming examples are very good. They are developed in small manageable chunks and there is no unnecessary repetition like so many other programming books.
I am still undecided about the usefulness of functional programming. I like object oriented programming, because it provides a way of modeling problems. Still, it is always a good idea to look at other types of programming. I will continue to read the book and to explore the possible benefits of F# and functional programming in general.
They say that knowing multiple spoken languages helps a person, with better precision and conciseness, express their ideas.
With that said, I feel right at home with F#, and this was a great introduction to functional concepts. I studied a lot of programming language theory for my degree, so it was more like a refresher?, but the constant switching between C# and F# to demonstrate the concepts was brilliant.
The biggest thing that I'm reminded of is this: sometimes, if it feels like you're having to do a lot of work to solve a problem, then you're probably not using the right tool for the right job.
If you have ONE chapter to read, check out chapter 8. The representation of decision trees in both C# and F# was, frankly, stunning.
Interesting overview of some very important functional programming patterns with examples in C# and F#. Made monads a bit clearer for me by describing computational expressions in F# =) I didn't give it 5 stars though, because I think the book could be shorter or better focused on advanced parts. Large part of the book is dedicated to a relatively simple stuff. Perhaps it would be more suitable for beginners in functional programming. Also some of the C# examples aren't too idiomatic for more object-oriented C# and look quite inelegantly.
Pros: book covered a lot of material, and Petricek and Skeet know the material well
Cons: I should have paid more attention to the title as I prefer a top-down teaching style to bottom-up. After a while I just wanted to get out of the labyrinth of endless examples. I also find the F# syntax far less natural than Lisp. I seriously wonder if F# will go the way of J# as C# is augmented with functional constructs.
This book does a decent job in introducing the OO .NET developer to functional programming using F#. It did spike my interest in F#. There are a fair amount of nuggets in this book that improved my overal understanding of functional programming concepts. It's well worth a read. The only downside I found is that this book is tedious at times. It could easily be reduced to a mere 200 ~ 250 pages while still delivering the same message.
I have learned a thing or two about functional programming from this book, but the examples in C# was unnecessary and frankly somewhat annoying. F# in itself is a very ugly language, and perhaps the worst language to use as a starting point for learning functional programming. The book should have been 25% of its size, and would have been better then.
Overall, its a nice and well written book about functional programming.
One think I didn't like much about the book was trying to implement some features common in the functional languages in C#. While it might be a good mental exercise, most of them felt wrong and going against the nature of the language.
I originally bought this to help me learn F# better but was surprised how much functional style programming I learned to use in C# with my day job. It's well written and has great side by side examples of functional programming in C# and F#. If you're a C# programmer you should read this book even if you're not interested in F# or functional programming. You'll be glad you did.
Книга строго про ФП на F# и немного C#. Для других языков фактически бесполезна. На мой взгляд слишком много воды и не очень последовательное изложение.