Kindle Cloud Readerを使い、ブラウザですぐに読むことができます。
携帯電話のカメラを使用する - 以下のコードをスキャンし、Kindleアプリをダウンロードしてください。
Foundations of F# (Expert's Voice in .NET) ハードカバー – 2007/6/1
- 出版社 : Apress; 1st版 (2007/6/1)
- 発売日 : 2007/6/1
- 言語 : 英語
- ハードカバー : 381ページ
- ISBN-10 : 1590597575
- ISBN-13 : 978-1590597576
- 寸法 : 17.78 x 2.03 x 25.4 cm
- Amazon 売れ筋ランキング: - 1,560,310位洋書 (の売れ筋ランキングを見る洋書)
I really appreciated the high density of programming examples and the detailed explanations that generally followed.
In general, I only have two complaints about the book:
1) While the book demonstrates the syntax well-enough, I don't believe it emphasizes enough on functional programming style, such as how to replace Java-like design patterns with functional programming techniques. As a result, most programmers without prior functional programming experience will end up writing C#/Java code in an F# syntax.
Its hard to sell a language without showing how it helps programmers write complicated applications more effectively. (Perhaps design patterns are outside the scope of this book?)
2) The book is not accessible to beginners. I've been programming for 10 years, and it took some effort on my part to keep up with the pace of the book. A beginner would not be able to learn F# as their first programming language from this book.
The best reason to buy this book is to keep up with the continuing evolution of programming languages. C# 2.0 has generics (parametric polymorphism), true closures, and allows programmers to pass functions as first-order parameters to other functions. C# 3.0 introduces type inference, lambda functions, LINQ (analogous to list comprehensions), etc. However, functional programming in C# is awkward and verbose. If you want to write functional applications, you'll do yourself a favor by using a real functional language like F#.
I would recommend buying this book if you want to supplement your programming skills with a beautiful and expressive language, although you may want to supplement it with books on Haskell and ML to get the most out of functional programming as a whole.
As much as I have enjoyed and learned from this book in the past 2.5 years, at this time I can only rate it one star, because the F# language has changed a lot since this book was published in 2007.
I Strongly Suggest: do not get this older F# book. Instead get a newer F# book.
Here are your new-enough choices on Amazon today:
Smith Programming F#: A comprehensive guide for writing simple code to solve complex problems (Animal Guide)
Syme Expert F# 2.0 (The Definitive Guide)
Pickering Beginning F#
Petricek Real World Functional Programming: With Examples in F# and C#
and lastly a pre-order-only until June 30: Neward Professional F# 1.0
F# is much newer than many programming languages, for example Python. At this point in Python's history, if you wanted to study Python, you could get by with a book on Python 2.x, rather than a book on current Python 3.x - in fact a lot of shops are still using Python 2.x
But nobody is using F# 1.x anymore! And here in the year 2010 you will hit many more difficulties learning F# from an old F# 1.x book than you would learning Python from an old Python 2.x book.
This old book is based on early versions of F# 1.x - get a newer book unless you can find this old one for cheap on a remainder table.
My suggestion applies to all F# books: avoid the old ones unless they are on sale for really, really cheap. Specifically: Pay regular price for any F# book published after October 1, 2009. Anything older, pay only a wicked cheap price.
Today June 7, 2010 I received my pre-ordered copy of the new Don Syme F# 2.0 book Expert F# 2.0 (The Definitive Guide) . A good day.
Now, as someone completely new to F#, I found reading this book consistently frustrating. While the author obviously knows the subject, the presentation is not very accessible. The main problems I see are: (1) example code usually *follows* its explanation, which just confounds me why an author would do this; and (2) the prose is hard to read, containing tedious explanations of syntax, and an odd over-use of the second-person "you" when walking through an example that I found disorienting.
Ultimately I spent a lot of time feeling frustrated trying to figure out what the author was saying, and wondering why it wasn't said more clearly. Judging from the sample chapters of Don Syme's book on his blog, I know that F# can be made accessible to the beginner. This book needed more editing to get there.
*getting a feel for the language
*showing how to do real tasks (WPF, WCF and ASP.Net being the most common nowadays)
*showing how to interoperate with the rest of the world (languages "out there" need to play nice with libraries and other languages)
This book does all this with great explanations and sufficient detail.
Just one warning: the F# language is a moving target, so a few minor differences here and there will definitely be encountered, due to the changes in the language. Also, learning a new language like F# is a wonderful experience, even for those programmers who will not use it: the benefit to one's abilities for reasoning about code will be immediately evident; this said, functional languages are harder to learn for mainstream programmers who expect the next C/C#/Java/Python clone...
And this just to make the hello world examples in beginning of the book. I think they could update their sourcecode of their website or make exakt installation description of extra modules. Now you cant use the source code on the website and you have to figure out what to replace their function with instead. Should you replace print_endline with System.Console.Write(String) instead or?
No more books from Apress until they fix this.