tags:

views:

1278

answers:

5
+5  Q: 

F# books question

I am now reading Foundations of F# by Robert Pickering and parallelly the book in progress 'Real World Functional Programming' by Tomas Petricek.

My question is, what is the added value I would get from buying and reading the following books:

1) Expert F# by Don Syme and others

2) F# for Scientists by John Harrop

Are those books still up to date with the current CTP version. What are things to keep notice of with respect to the recent changes in the language? Will there be reprinted updated versions?

Also I want to learn more about datamining techniques with F# as a tool for this. What are good books to read next on this topic?

+4  A: 

If you haven't already, I would listen to the 2 .NET Rocks podcast interviews with Don Syme and John Harrop before getting the books.

I remember particularly that John Harrop gives some good guidance on where F# will and will not be useful to an "average" developer.

Don Syme podcast

John Harrop podcast

I'm just learning Functional concepts myself so I sorry can't help with any data-mining advice.

Ash
yes, I listened to them and I like listening to those podcasts. still my question is, how much really new will I learn from buying those books? Still they are nice to have of course to complete my F# book collection ;-)
Michiel Borkent
+1  A: 

Wtiting books from a CTP is always a little risky, and there are bound to be small pockets of things that don't work perfectly. This is mainly likely to be obvious with any code samples - for example, I looked at the Petricek about the same time as the CTP was last updated, and had some "fun" converting some of the samples. I should stress I don't mean this as a criticism (indeed, the author was really helpful about the differences on the book's forum) - my point is that if a pre-release, in progress book isn't up-to-date with the CTP, how can paper copy possibly be 100% up-to-date?

However, since the largest volume of code is usually downloads from the book's site, I might expect these to be updated to keep pace with the CTP - and I would also expect the authors would keep an errata for any such changes.

Personally I'd worry more about whether you are the target audience for the book. For example, the Harrop and Petricek books seem (to me at least) to have completely different targets.

Marc Gravell
+1  A: 

I think you would get the most out of Expert F#.

It has great code samples. My favorite ones are in chapter 9 (Introducing Language-Oriented Programming): probabilistic workflows, schema compilation by reflecting on types, and using F# quotations for error estimation.

As a bonus, you get an insightful compendium of advanced functional programming techniques in chapter 8 (Mastering Common F# Techniques). For example there's a section about using continuations to achieve tail-recursion.

(I've skimmed Foundations of F# and F# for Scientists. I've found Foundations of F# terribly boring and useless having already read Expert F# (but the other way around must feel great!). F# for Scientists has some interesting bits and is very concise, but I reserve my highest recommendations to Expert F# exclusively :).)

namin
+1  A: 

My book Visual F# 2010 for Technical Computing (2010) is the only published book in the world to cover the current release of F#. My old F# for Scientists book was written in 2006 and covered F# in Visual Studio 2005.

My books are aimed at technical users who want an explanation of the language along with practical examples demonstrating how each feature can be used to solve real problems. For example, my book covers the spawning of interactive 2D and 3D graphics from an F# interactive session using WPF, and covers the design and implementation of high-performance parallel programs using the TPL with the example of QR decomposition.

In contrast, Expert F# is a thorough survey of the language itself. Foundations of F# and Programming F# are gentle introductions to the language.

Jon Harrop
+1  A: 

expert f# is great. but the syntax of f# has changed over the past two years. it is not a book to start.

the new book programming f# is very suitable for f# beginners.

regarding to data mining, developing data mining and machine learning models in f# is very convenient. on one hand, you have the powerfulness of a functional programming language, succinct syntax, data driven thinking, high order functions, compact code etc. on the other hand, f# can use .net libraries. you can use well tuned .net graph/plot, numerical libraries and your f# models can be easily called by c# or vb.

Yin Zhu