おすすめ F# 本

なんか某所でまた F# が盛り上がっていますが,最近読んでいる F# 本が激しく良いのでご紹介.

Foundations of F# (Expert's Voice in .NET)

Foundations of F# (Expert's Voice in .NET)


何より素晴らしいのが,この手の技術書の中でも破格に読みやすい英語で書かれていることです.むしろ英語文章の教材にでもしたいぐらい.
おそらくこの本が一番向いているのは,.NET や C# をそこそこ知っている人が,関数型言語の入門書として最初に読んでみる,というケースでしょう.その用途だと『ふつうのHaskellプログラミング』よりもこっちの F# 本をおすすめします.
内容も豊富です.そして解説の順序がすばらしいので,分量が多いからといってそれほど苦にはなりません.細かい章立ては ここ で本文抜粋の PDF ファイルが公開されています.

CHAPTER 1 Introduction
CHAPTER 2 How to Obtain, Install, and Use F#
CHAPTER 3 Functional Programming
CHAPTER 4 Imperative Programming
CHAPTER 5 Object-Oriented Programming
CHAPTER 6 Organizing, Annotating, and Quoting Code
CHAPTER 7 The F# Libraries
CHAPTER 8 User Interfaces
CHAPTER 9 Data Access
CHAPTER 10 Distributed Applications
CHAPTER 11 Language-Oriented Programming
CHAPTER 12 The F# Tool Suite and .NET Programming Tools
CHAPTER 13 Compatibility and Advanced Interoperation

だいたい5章ぐらいまでで文法の基礎紹介がテンポ良く続き,第6章でメタプログラミングの顔見せ,第7章でライブラリの解説と続きます.その後は興味のあるところをつまみ食いしていくとよさげ.WinForms や,WPFWCF,LINQ との連携についても触れられています.
個人的には第11章がツボで,Quoting を使ったメタプログラミング (C# 3.0 の Expression Tree 生成機能のように,F# の式も Quote によって木構造をもったデータに変換できます) なんていう話が登場します.他にも簡易計算言語を作るために,文法から Parser を自動生成し,DynamicMethod を使って IL を出力したりという話も.
後は12章がツールの紹介,13章が相互運用で,たとえば F# で定義した Union を C# からどうやって使うかといった話が続きます.
とりあえず第1章がサンプルとして公開 されていますので,これだけ読んでみるというのもありでしょう.
また,微妙にそこそこ日本でも売れているのか Amazon.co.jp にはまだ在庫があるようです.いまボタンを押せば 2 名様限定ですぐに手に入る模様.
本の購入者向けの追加サービスとして $10 で PDF 版が販売されているので,読了後もプログラミング時のオンラインヘルプ代わりに使えます.
http://www.apress.com/promo/tendollars/
とまあこれから F# を始めようという人には是非おすすめの一冊でした.てかこれ,日本語訳に向けてあちこち動いてみてもいい本ですな.