Nov 20 2007
Title: Foundations of F#
Author: Robert Pickering
A book which tries to teach a programming language from scratch cannot be an easy thing to write. When the book focuses on a language which follows a programming paradigm other than the mainstream ones (i.e. Object-Orientation/Procedural) it must be even harder. This is precisely Robert Pickering set out to do with Foundations of F#.
While the book does cover the foundations of F# language I personally had a difficult time reading it. I found that the early parts of the book were quite unclear and had to be reread a number of times for them to successfully sink in. This may, of course, be due to my inexperience with the Functional Programming Paradigm or it may even have to do with the F# language having it's origins as a research project.
The book opens with a few quick pages on functional programming in general and F# in particular before moving quickly through obtaining and running F#.
The next 3 sections cover the F# language from a functional, imperative, and object-oriented perspective. This is the area where I found myself most confused. The narrative seems to swing between explaining the programming concepts and the language particulars with very little obvious dileneation. Many topics are merely forward references to chapters towards the end of the book where more complete discussion is given.
In these chapters it is of vital importance for a reader to sit down with a computer and actually try the examples presented to really get a feel for how the language operates. Unfortunately many of the examples require fixing before they will work and some are intentionally non-operational to facilitate the narrative. I have read these three chapters many times and each time it gets a little clearer.
Beyond this the book gets into some reference material, discussing organization of F# code and some standard libraries before delving into some stronger examples of using F# covering User Interfaces, Data Access, Distributed Applications and Language-Oriented Applications. I have only skimmed these chapters as I continue to struggle with the earlier material but the examples presented seem clearer and, by far, more interesting.
F# as a language is an interesting topic and important part of the Microsoft .NET Framework going forward. If you are keen to get up and running or you have a real need to learn the language then this book will get you there. However, as the language fully arrives in the mainstream I would expect more accessible books to appear.
If you cannot wait to you can buy this book from
Amazon: Foundations of F#
Publisher: Foundations of F#
Disclosure: The Perth .NET User Group is a member of the Apress User Group Program. Apress make copies of their books available for review, and the copy reviewed here was kindly donated by them.
No new comments are allowed on this post.