Scheme というか、Gauche を勉強し始めた。

ちょっとしたタスクをやるためのスクリプトを Lisp で書きたいなーって思ったことがきっかけ。

Lisp だと、Common Lisp か Scheme か、はたまた Emacs Lisp か？ってところで、Scheme にした。そして、Scheme なら Gauche かって感じで Gauche にした。

今まで、ちょっとしたスクリプトは ruby で書いていた。大学の研究室が ruby メインだったのが理由だけど、よく考えたら言語的にそんなに魅力を感じたことがなかった。Lisp はハッカー感がなんとなくかっこいいなーと思ってて、SICP で Scheme をやって（途中までだけど）、面白いなと思って、Land of Lisp でちょっとだけ Common Lisp やって、自分には使いこなせる感じがしないなーと思ったので Scheme を選んだ。

Gauche を選んだのは SICP やってた時に使ってた処理系だというのと、Gauche のコードはめっちゃ勉強になるらしいので選んだ。いつかコードを読んで勉強したいなぁ。

他の理由で関数型の頭を維持しておきたいというのがある。会社ではもともとサーバーチームで Play Framework で Scala 書いてたんだけど、だんだん HTML /CSS とか JavaScript を書く時間が増えてきて、Android チームに移籍になり、今は Java メイン、手続き型マンセーって感じなので。

Effective Java と並行でどれだけやれるのか分からないが、最初の一歩を踏み出さないことには何も始まらないわけで、まあ、来年の春が来る頃くらいまでには簡単なタスクをこなすプログラムは書けるようになってたいな。

そういえば、Lisp の括弧だけで構成される感じは構文的の見た目的にすごいかっこいいと思うんだけど、大学時代の教官はそういう単純な見た目がダメって言ってたな。同じように XML が入れ子になってるのとか結構好きだな。

※ Emacs Lisp は動的スコープとのことで却下した。Emacs 使いだけど。