Most Helpful Customer Reviews
26 of 27 people found the following review helpful:
5.0 out of 5 stars
Easiest F# Book Available, November 10, 2009
This review is from: Programming F#: A comprehensive guide for writing simple code to solve complex problems (Animal Guide) (Paperback)
As of Nov 2009, this is probably the easiest book out there on F#. Chris Smith doesn't approach the book assuming prior functional programming knowledge. He avoids getting overly complicated or using difficult terms. There was no point in the book where my eyes glossed over because it got too hard to follow.
The book is split into two parts. The first part is a mainly a run through all of the F# syntax, getting you setup and writing F# code quite quickly. Even though I've been using F# for a couple of years, I still picked up a few new things. It's a book you can use as a reference for parts of the language, even though the actual product documentation is coming together. Of note is the section on lists, which I found particularly clear and easy to follow.
The second part of the book is where Mr. Smith takes it up a notch. The book says it's "applied" F# programming, which in many programming books means the author is about to go over some common APIs for you. Not so in this book. The second part shows some of the very powerful and practical things you can do with F#. The introduction to workflows (computation expressions) was excellent; I don't believe I've seen an easier-to-understand explanation for those who haven't dealt with such constructs before (and there's no use of the dreaded word "monad"!).
What really surprised me was that this book follows up on workflows with a great section on quotations. Not only does it give an overview of what they are, but it provides enough depth so that you can actually start processing and manipulating quotations right away.
Even the appendix is worth reading, as there's a part on F# interop. While F# runs on the CLR, there are certain constructs in F# that won't necessarily look pretty in C#. The appendix goes over how to avoid those problems and make clean ".NET-friendly" APIs.
Overall, I'm quite content with the book. It's a good purchase, even for an experienced F# user. If you're trying to learn F#, and don't have a functional background, this is the book to start with.
As a note, the content doesn't overlap excessively with "Functional Programming for the Real World". So if you're considering both, you won't be disappointed. They're actually so complementary, I'm not sure which one is better if you can only get one.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
23 of 26 people found the following review helpful:
3.0 out of 5 stars
Explains "how" but not "why", "where", or "when", May 1, 2010
This review is from: Programming F#: A comprehensive guide for writing simple code to solve complex problems (Animal Guide) (Paperback)
If you are looking to dip your toes into F#, this book is a good reference. Unlike any of the other reviewers here, this is my first experience with F# or an F# book other than a brief Fib generator when the first F# CTP was released. The fact is, I have a strong interest in F#. I learned Scheme ages ago (nearly 20 years ago, now that I think about it) and enjoyed it for what I did, so I am not a total stranger to functional programming. But if you've never used functional programming before, this book really does not explain where it is better or how to really take advantage of it. Sure, it shows you at a syntactic level how to use F#'s functional features. But if you want to improve your application by using functional programming, this book isn't going to help you unless you are already well versed in functional programming. To be honest, I was extremely disappointed.
The parts on object oriented programming and interfacing with other .NET code make F# look positively miserable. All too often, it seems like I would not want to use F# for anything other than taking a set of primitive values in and spitting a primitive out if I ever need to interface with other .NET code. I don't know if this is a fair assessment of F#, but it is the impression that this book gave me. By focusing so much on things that F# is not great at and largely ignoring things that it should be good for (for example, why was there never an example of walking a tree *in parallel*?!?!), I came away feeling like F# is just a very fancy replacement for the switch/case system.
This book *is* well written and clear. Unfortunately, F# is a symbol heavy language and the author tends to explain a symbol once and assume that you understand it and why he chose it over something else, which made following the examples very hard. All the same, I was grateful that the author didn't rely on understanding highly technical ideas (continuations, memoization, etc.), and at the same time did a very good job at explaining them as they came up, and even gave some good examples.
If you are someone (like the other reviewers) who are already familiar with functional programming as a concept and want to learn how to do it within F# and the .NET ecosystem, this is the book for you. If you are not that person, this book won't help you beyond the F# syntax itself. I am going to check out "Real World Functional Programming" and see if it has the parts missing from this book.
J.Ja
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
11 of 12 people found the following review helpful:
5.0 out of 5 stars
Ladies and Gentlemen, this is the book !, November 19, 2009
This review is from: Programming F#: A comprehensive guide for writing simple code to solve complex problems (Animal Guide) (Paperback)
It has been a long time since I got excited about a programming book as much as I did with Programming F#. I have all the books on F# available in the market today(including the Manning MEAP - Functional Programming for the Real World: With Examples in F# and C#. But I should say that this is the best book for learning F# if you have no experience with functional programming. I am not sure how this book would be for a person who is totally new to programming (chances are they would find this ahead of their curve). But for a person who has good experience with imperative programming this book would get you up and running with F# in specific and functional programming in general.
The book by Don Syme Expert F# (Expert's Voice in .Net) (who invented F#) is also good but not as good as Programming F# for new functional programmers. But once you have read this book, Don Syme's book might be a good follow up.
The strongest point of this book is the clarity with which concepts are explained and the choice of good examples to explain a concept. They are concise and to the point. It also made the book surprisingly small (at a little less than 400 pages). But no worries, everything that you need to get a firm footing in F# is in here.
This is truly a 5 star book. Highly recommended.
The table of contents:
Part I. Multiparadigm Programming
Chapter 1. Introduction to F#
Chapter 2. Fundamentals
Chapter 3. Functional Programming
Chapter 4. Imperative Programming
Chapter 5. Object-Oriented Programming
Chapter 6. .NET Programming
Chapter 7. Applied Functional Programming
Chapter 8. Applied Object-Oriented Programming
Part II. Programming F#
Chapter 9. Scripting
Chapter 10. Computation Expressions
Chapter 11. Asynchronous and Parallel Programming
Chapter 12. Reflection
Chapter 13. Quotations
Appendix A. Overview of .NET Libraries
Appendix B. F# Interop
Index
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
|