孤独にそっくり

開いている窓の前で立ち止まるな

Land of Lispを読み始めました

http://www.flickr.com/photos/12516383@N07/8518769676

photo by whileimautomaton

プログラミングの勉強がしたいなと思って数年経ちます。もともと情報系なので、CやJavaの基礎的な勉強はしましたが、使わないので、ふわっとしか覚えていません。ドットインストールでHTMLやCSSPHPPythonをやったのですが、それも長続きせず…。

プログラミングが趣味の人って、普段何をプログラムしているんでしょうか。それに、ウィザード級ハッカーになるような人たちはどうやってそこへ至るのか、僕には想像がつきません。

 

LISPについて

それはともかく、プログラミングの言語を解説するスレとか読んでいると、よくLISPとかいう怪しげな言語を目にすることがあって、ニッチなところへ行きがちな僕は、前から興味がありました。そしてちょっと前に、Schemeを触る機会があって、ここここを読んで軽く勉強したのですが、よくわからないけどすごい事をしているなと思いました。

Schemeは特に使う予定もなくなったので、それ以降忘れていたのですが、今回改めて何かを勉強しようと思って、有名な『Land of Lisp』にたどり着いたわけです。

実行環境

前にSchemeを触った時は、DrRacketを使いましたが、今回はVirtualBox上でUbuntuを動かして、そこでClispを使っています。Windows環境でどうやって動かすのか調べてないのでわからないですが、どの言語に関しても、Linuxからやったほうが楽じゃないですか?EclipseVisual Studioですり減っていたのは何だったのか…。ただ、大規模なプログラムを組んでいるわけではないので、なんとも言えません。Linuxもよくわからないので、実は闇が深いのかもしれませんね。

4章まで読んだ

とりあえず、4章まで読みました。「はじめに」で他の言語やLISPがどういう変遷をたどってきたかについて解説されていますが、とてもおもしろいです。ちょこちょこ間に入る絵が癖になります。4章までは、以下のトピックについて解説しています。

第Ⅰ部 LISPは力なり

1章 さあLispを始めてみよう

2章 はじめてのLispプログラム

3章 Lispの構文の世界を探検する

第Ⅱ部 LISPは対称なり

4章 条件と判断

  • nil, 'nil, (), '()
  • Lispと空リスト
  • if - 条件式
  • いろいろやりたかったらcond
  • 比較 - eq, eql, equal,equalp...

2章から、いきなりLISP特有の概念についての解説が始まったので、「エッ!!!」ってなりました。もっとふざけたものを想像していたのですが、Lispは奥が深すぎてそんな暇はないのでしょうか。完全なプログラミング初心者向けではないようです。

とはいえ、わかりやすく噛み砕かれているので読めばどうにかなりそうです。5章以降もさくさく読んでいきたいと思います。