関数型プログラミングに挑戦してみます
いつからだろう。「何を作るかが大事であって、プログラミング言語は何を使っても同じ。」なんて思い始めたのは。
僕はPaul Grahamのこの記事を読んで、その考えを改めた。
まず、思いっきり物議を醸しそうな発言から始めよう。プログラミング言語は、その力において差がある。
普通のやつらの上を行け ---Beating the Averages---
この記事は実に刺激的だった。そう、プログラミング言語には優劣がある。そして、小さなベンチャー企業が勝つためには、他社と違うことをやらないといけない。プログラミング言語もそうだ。他社と同じ言語では、規模の力に圧倒されて負けてしまう。
この記事をブックマークしたのは2006年4月。今の会社を登記する直前で、そのとき既に僕はC#を選択していた。そして今もC#を使っている。
「C#だって?みんなが使っている言語じゃないか。Microsoftの宣伝に乗せられているだけじゃないか。本当にPaulの記事を読んだのか?」そう言われそうだ。確かにそうかもしれない。でもね、3次元の形状処理をC#で書いている会社ってそんなにないと思うんだけど、どうかな。それまで僕はC++を使っていたし、形状処理とかはC/C++が主流だと思う。だから、C#を選択するのにはそれなりに勇気が要ったし、Paul Grahamの記事には勇気付けられた。
この記事でPaul Grahamは「Lisp最高!」と叫んでいるのだけれど、僕はさすがにLispを選択しようとは思わなかった。幾らなんでもLispで3次元CADを作るってのは馬鹿げていると思うんだけど、どうなんだろうね。バカの壁があるのかもしれない。僕はLispは全く知らないのだ。でもとにかく、この記事でLispという言語に興味を持ったことは確かだ。
そして最近、もう一度この記事を読み直したのだ。
- 作者: ポールグレアム,Paul Graham,川合史朗
- 出版社/メーカー: オーム社
- 発売日: 2005/01/01
- メディア: 単行本
- 購入: 109人 クリック: 4,884回
- この商品を含むブログ (582件) を見る
だけど、なんというか、「自分はLispを知らない」という負い目のような感覚が残った。一方で、「さすがにLispは使わないよなー」という気もした。やっぱり「もしかして将来使うかも」という期待がないと言語は勉強する気になれない。で、Lispの代わりに、最近良く耳にする「関数型プログラミング言語」というヤツを勉強してみようじゃないの、という気になった。
やっぱりよく耳にするHaskellってヤツがいいんだろうか?
ってなわけで、ウェブの資料を漁りながらちまちまとHaskellのコードを打ってみているんだけど、なかなか慣れない。これは今までやってた言語と全然違うね。なんてったって
- 変数がない
- (基本的には)逐次実行はない
- 繰り返し文(for文、while文)がない
そんなんでプログラムが書けるかーっ!って思うんだけど、書けるらしい。「オブジェクト脳の作り方」という本があったけど、オブジェクト脳よりも「Haskell脳の作り方」のほうがはるかに難しいんじゃないの?
でもね、これ、面白いわ!
なんて思っているときに、この記事を見ちゃったわけよ。
おそらくこの本が一番向いているのは,.NET や C# をそこそこ知っている人が,関数型言語の入門書として最初に読んでみる,というケースでしょう.その用途だと『ふつうのHaskellプログラミング』よりもこっちの F# 本をおすすめします.
おすすめ F# 本 - NyaRuRuが地球にいたころ
でね、思わず amazon でポチっと(笑
Foundations of F# (Expert's Voice in .NET)
- 作者: Robert Pickering
- 出版社/メーカー: Apress
- 発売日: 2007/06/01
- メディア: ハードカバー
- クリック: 20回
- この商品を含むブログ (14件) を見る