File Size: 3376 KB
Print Length: 375 pages
Page Numbers Source ISBN: 1107019028
Simultaneous Device Usage: Up to 4 simultaneous devices, per publisher limits
Publisher: Cambridge University Press; 1 edition (April 30, 2013)
Publication Date: June 25, 2013
Sold by: Digital Services LLC
X-Ray: Not Enabled
Word Wise: Not Enabled
Lending: Not Enabled
Enhanced Typesetting: Not Enabled
Best Sellers Rank: #670,403 Paid in Kindle Store (See Top 100 Paid in Kindle Store) #87 in Books > Computers & Technology > Programming > Functional #1296 in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Object-Oriented Design #3391 in Kindle Store > Kindle eBooks > Computers & Technology > Programming
This is a first rate survey of F# for academia.F# is in the ML family of languages. ML had already started supplanting Scheme as a lingua franca in academia in the early 80s, so a book on F# for academia makes a lot of sense. In fact, F#'s fastest path towards acceptance in industry might well come via an indirect route through exposure in academia.If you're in academia, using F# instead of C# would typically be a no-brainer. (For instance, you'd have to be glutton for punishment to write a compiler in C# when you could use F# instead.)If you are a C# programmer, is this book for you? Or would an F# via C# book be better? That would depend on a lot of things; like personal preference, and how much of an academic background you have.One thing I like about academic books is how concise they are. (.Net books, by comparison, are typically verbose; with thousand page tomes being common.)Another thing I like about academic books are the examples; which are typically drawn from mathematics and computer science. (.Net books, by comparison, often have sophomoric examples with subject matter like zombies and cars; which I don't like.)The coverage of monads is excellent. The discussion on monadic parsers is great material.The fractal examples are fantastic; but showing them using Windows Forms (rather than XAML/WPF) seems schizophrenic to me. If you're cutting edge enough to want to use F#, why not also be cutting edge enough to use the latest and greatest GUI technology that Windows has to offer?!Conclusion: highly recommended. Eloquent, nicely done; but weak on applied aspects of F# (albeit that's not the focus nor purpose of this book).
This book is amazing. I just started learning F# in January for an independent study (I'm a grad student). I have Expert F# 3.0 and F# for Scientists - both are great but if I had to pick just ONE I would pick Functional Programming Using F#. I'm currently doing an internship, it's very hard/involved, and it's all in F#. This book connects a lot of dots in the "intermediate-expert" skill level range that were left unconnected by the other other two books. I had some serious nerd excitement over this book and I have a whole mess of books - nerd excitement is getting rarer. It was comparable to getting a new gadget or trying a new OS. It has examples, exercises, and an accompanying website - it is THE book to use for a class on the subject - not just because it fills a need for a functional intro with F# but because it is generally awesome as far as textbooks go.To give another analogy that should be relevant to some of you...Regarding my F# learning experience - reading this book was like the first time seeing calc based physics... "Ohhh! Well hell, I should have just started here first"
This is an excellent introduction to functional programming in F#. There are a lot of student exercises at the end of each chapter; a nice bonus for those using it as a college course text (let's hope many of you do just that). The order in which topics are covered builds in a very sensible way. Recursion and tail calls are done well early on. Everything relating to mutation is covered only in chapter 8. The advantage this book has over most other F# books is (a) its concentration on purely functional programming (b) the authors have been teaching functional programming for quite some time and are able to teach the topics logically and well. If you are coming from an OO background you may want to make this your first F# book to help you rethink your programming habits. There are many other good F# books too but others don't have the same 1D-focus on functional programming as this. Move on to those other books after you're rewired you head a little with this. Although I say 'rewired' I don't want to give the impression that functional programming is hard. FP is no harder than object oriented programming. Initially, functional programming seems harder than imperative programming but, as your imperative code grows it has a tendency to turn into a minefield making it harder to understand; every mutable property you expose turns on you to become yet another expanded dimension of a combinatorial complexity hell dragging you down. Well that's what I think of imperative programming. There are two annoyances knocking off 1 star. It is let down by too many typos (which a clever reader will be able to correct for herself). The ebook version is somewhat hard for me to read because the many image files all look too small; OK if it's read on a PC though.
When learning a new language I tend to read a handful of books before I start doing anything serious. The other related books were either out of date, poorly written or strangely ordered such that I had to skip ahead to understand what I was currently reading. So I quickly tired of reading them.I enjoyed this book because the writing is straightforward with relevant examples for each topic, a final summary and a series of exercises at the end of each chapter. Clearly the authors know how to present the material in a way that makes it easy to learn. I found myself engaged in the material and liked the pacing which was perfect for chipping away at my imperative prejudges. Since I consider myself and expert in OO and imperative programming I was pleased that the authors stayed focussed on functional programming and kept imperative features to a minimum.However I'm subtracting 1 star for the following reasons:1. I have the kindle version of the book and occasionally get annoyed by the typographical errors. I'm an experienced programmer so I didn't get roadblocked but it is annoying none the less.2. The math does not render clearly on a Kindle tablet, however looks fine on an iPad3. I was unable to find an answer key for the exercises on the author's website. Although this is minor, if provided with exercises I would like to check my results.4. The chapter on sequences (chapter 11) should have been introduced earlier, ideally just before or after the chapter on collections (chapter 5). I suppose this is because the book was translated from an earlier book on ML and the F# specific stuff was added at the end.Regardless of my dislikes, I do strongly recommend this book.