Gaucheをはじめてみませんか?
Emacsとの連携
ご存じの方も多いと思いますがLispは以下のようにカッコを多用します。
(define(factn)(if(=n0)1(*(fact(-n1))n)))
そのため、左カッコ、右カッコの対応対応を表示してくれたり、Lispに対応したインデント機能を持つエディタが必須になります。
Lispプログラミングに最適なエディタとしてはEmacsがあります。Emacsは利用者が機能を拡張するための言語として、EmacsLispという独自仕様のLispが使われます。
Emacsはプログラマに人気があるエディタなので読者の中にも使われている方が多いのではないでしょうか。UNIXのエディタとしてはvi(vim)と人気を2分しています。Windows上で動くEmacsとしては、Meadow(http://www.meadowy.org/meadow/)が有名です。
Emacsには最初に書いたようなカッコを表示を始めScheme/Lisp向きの多数の機能があります。その中でもEmacsの画面を2分割し、片方ウィンドウでSchemeのコードを書き、もう1つのウィンドウでそのコードをすぐに実行する機能は、Lispプログラミンの生産性を飛躍的に向上します。この機能を使うには、リスト1ように設定した設定ファイルをホームデイレクトリの.emcasに書きます。
リスト1の設定は、Cygwinを「C:\cygwin」にインストールしたWindows用に書かれています。LinuxやCygwinを他の場所にインストールした場合は、「(setq scheme-program-name "C:/cygwin/usr/local/bin/gosh.exe -i")」の「C:/cygwin/usr/local/bin/gosh.exe」の部分を環境に合わせて変更してください。
実際の動作
では、実際に動作を確認してみましょう。Emacsを起動し、Scheme用に拡張子が.scmのファイル(今回の例では、t1.scm)をオープンしましす。ここで「Ctrl+C」、次に大文字Sを入力すると画面が2分割され、下にGaucheのウィンドウが開きます。
上のウィンドウに「(+ 2 3 4)」と入力してみましょう。右カッコを入力すると対応する左カッコがハイライトされます、さらに右カッコの後ろで「Ctrl+X」、次に「Ctrl+E」を入力すると、下のウィンドウに9と表示されます。これは「(+ 2 3 4)」がGaucheで実行され、2+3+4の結果である9が表示されたのです(図3)。
残念ながら、今回はここまです。次回は、Gaucheのプログラミングを学んでいきます。
最後に記事の理解を深めるための参考サイトとして、「Gauche(http://practical-scheme.net/gauche/index-j.html)」「Cygwin(英語)(http://www.cygwin.com/)」「Cygwin(日本語)(http://sohda.net/cygwin/)」「Emacs(英語)(http://www.gnu.org/software/emacs/)」「Meadow(http://www.meadowy.org/meadow/)」を紹介します。