Gauche で Land Of Lisp (1〜5章)
2013-03-04 21:42:16
目次
- Tavi’s Travelog - Gauche で Land Of Lisp (1〜5章)
- Tavi’s Travelog - Gauche で Land Of Lisp (6章)
- Tavi’s Travelog - Gauche で Land Of Lisp (7章)
先月末あたりに発売した、Land Of Lisp 翻訳版 を買った。
オライリーらしからぬ表紙で、話題になってた模様。
オライリージャパン
売り上げランキング: 3,246
ブログでLispのことを書くのは初めてだが、
だいたい一年半ぐらい前から少しづつLispをやってる。
中でも僕はSchemeが大好きなので、
Little Schemer から入り、
プログラミング Gauche を一通り読み、
色々書いたりしながら勉強してる(亀の歩みのような速度だが。。。)
そんなときに、Land Of Lisp の翻訳本がオライリーから発売されると知り、
意気揚々と買ったわけだ。
翻訳者は、shiroこと、川合史朗さん
この方はScheme処理系 Gaucheの作者。
ブログ Island Lifeでも有名な方だ。
この本も、以下の記事を見て知った。
Island Life - Land of Lisp
何を隠そう、僕のブログのデザインも、Island Lifeを参考にさせてもらった。
(こういうのって、ちゃんと言わなきゃダメなのかな?)
shiroさんの本といえば、
- ハッカーと画家
- プログラミング Gauche
と読んでるので、今回の翻訳でも読み易い訳になってるだろうと思って、安心して買えた。
1〜5章
さて、早速1章から5章までを読みつつ、手を動かしてみた。
といっても、実際にモノを作るのは、2章と5章だけなんだけど。
2章は、数当てゲーム
5章は、簡単なテキストアドベンチャー
なんだけど、できるモノ自体はそこまで楽しくはない。
まあ、簡単なものだしね。
なお、この本ではCommonLispを採用しており、Schemeではないのだけれど、
でも、CommonLispを知らない僕でも、Gaucheで書けるかなーと思い、
とりあえず、進めてみたわけだ。
2章、5章は内容的にも難しくないせいか、
わりとすんなりGaucheで書けた。
当然リファレンスは参照したけど。
こう簡単なものだと、Schemeのプログラムが非常に綺麗に書けて楽しい。
functionオペレータとして、関数の前に #’つけたりしなくていいし(笑)
と、ここまで書いてなんだが、
実はshiroさんが、Gaucheで書いたものをすでに公開しているので、
はっきり言って、僕の試みは二番煎じでしかないのだけれど、
まあ、自分の勉強のためのものだし、別にかまわない。
だから、なるべくshiroさんのGithubは見ない方向で!
まとめ
いきなり最初にグローバル変数や破壊的代入がさらっとでてきたのは、
Little Schemerから入った僕にとっては、結構衝撃的だったのだが、
一番の感想は、楽しい!ってことに尽きる。
ゲームという取っ付き易く、成果がすぐ分かるものが題材なのがとてもいい。
CommonLispとSchemeの違いは、なかなか面白く、
いつかCommonLispもやってみたいなと思わせてくれる。
面白すぎて、今度受けるLPIC Level 1の試験勉強がおろそかになるのが玉に瑕(笑)
と、まあ、こんな感じで読み進めていこうと思う。
5章までは一気にいったけど、
次の章からは、一つの章につき、ブログ記事も書いていくということで。(そうすれば続けられるよねーw)
一応Githubにもアップしてる。
ryotakato/land-of-lisp
汚いソースでごめんなさい。
ちゃんと単体テストも書きたいね。
P.S
そういえば、SICPこと、計算機プログラムの構造と解釈 を読むのも、2013年の目標。
英語版はPDFで無料で公開されているので、そっちを読めばいいんだけど、
難しいと聞くので、日本語版を買おうかどうか検討中。
さらに、今僕の中で、Kindle Paperwhiteが欲しい物リストのTOPに君臨してるので、
電子版として日本語版買って、英語版のPDFと同時に読み進めるのも悪くない。
「オレ、LPIC Level 1 受かったら、Kindle Paperwhite 買って、SICP読むんだ・・・」
それなんてフラグw
There are currently no comments on this article, be the first to add one below
Add a Comment
Note that I may remove comments for any reason, so try to be civil. If you are looking for a response to your comment, either leave your email address or check back on this page periodically.