HOME |
もうひとつの Scheme 入門 |
2. Scheme を電卓代わりに使う |
書き込む |
しかし、優秀なハッカーは Scheme 好きが多いので、Scheme を習っておいて損は無いと思います。 実際、最も優れたなコンピュータ科学の教科書の1つである Structure and Interpretation of Computer Programs (SICP) 日本語訳:計算機プログラムの構造と解釈 のプログラム例も Scheme で書かれています。 また、GNU は拡張言語に guile という Scheme を採用しています。 guile は MS-Word や Excell のマクロのようなもので、 簡単なスクリプトで、アプリケーションを制御できます。
紫藤は Common Lisp の方が詳しいのですが、これから Lisp 系の言語を勉強しようという人には Scheme の方がお勧めです。 理由は、
Scheme を習うと筋が良くなる と言われています。たとえ Scheme そのものを仕事で使うことが 無いとしても、Scheme によって培われた筋のよさは、他の言語を使う場合でも役に立つでしょう。
Scheme は人気のある言語なので、Scheme の入門サイトは数多くありますが、 どれも、まったくの初心者には少し難しいようです。
これから書く、一連の文書では、易しく、噛み砕いた説明を心がけます。 前提知識もほとんど必要としないように書こうと思っています。
具体的には、
scheme は文法が易しいので、簡潔に説明することができます。 しかしそうすると勾配がきつい解説になってしまうので、ここではゆっくりと なだらかな勾配の解説を目指します。 やはり、初めは括弧だらけのコードに戸惑うかもしれません。 (Scheme のコードがどんな感じかは例えばここをみて下さい。) しかし、適切なエディタを選べばカッコの対応、インデントは自動でやってくれるので 括弧を気にしないで読み書きできるようになります。 人間はインデントでコードを読みます。インデントがおかしいのは括弧の数がおかしいので、 エディタを使ってどの括弧がどれに対応するかを調べ、括弧の数がおかしいところを探します。
Scheme にもいろいろな仕様があって、最近よく使われている仕様は R5RS と R6RS です。 RnRS は Revised n Report on the Algorithmic Language Scheme の省略形で、 それぞれ以下のサイトで見ることができます。
Windows で動く Scheme の処理系には ChezScheme, MzScheme, DrScheme, SCM などいろいろありますが、 ここではインストールが簡単で、動作が早い MIT/GNU Scheme と MzScheme の インストール方法について説明します。 mzscheme は最近広く用いられている scheme 処理系で、 最新の仕様 R6RS にいち早く対応しています。 また、Scheme の標準ライブラリ である SRFI もサポートしています。
注:
"もうひとつの Scheme 入門" ははじめ MIT-Scheme を使用することを前提に書いたのですが、
最近 mzscheme の方が
機能が豊富で
広く普及してるので、
徐々に mzscheme 用に書き直そうと思っています。
>set HOMEPATHとすれば確かめられます。 WinXP では初めから
[code 1] scheme.ini の設定例
(cd "C:\\doc\\scheme") (define call/cc call-with-current-continuation)最初の行は C:\doc\scheme にディレクトリを移動しています。 Scheme プログラムのソースコードを保存するディレクトリに移動させましょう。 そうするとプログラムをロードするときフルパスを指定しなくてすみます。 2行目は call-with-current-continuation という命令の短縮形を定義しています。
最後に、MzScheme.exe があるディレクトリに PATH を通しておきます。 WinXP で PATH を通す方法はここなどを参考にしてください。 (google で検索するといろいろとヒットします。)
[.emacs に追加する設定]
最後に Scheme に関する主なサイトを挙げておきます。
(show-paren-mode t) ; 対応する括弧を表示する
(setq scheme-program-name "C:/Program Files/MzScheme/MzScheme.exe") ; run-scheme で動かす処理系
(autoload 'run-scheme "cmuscheme" "Run an inferior Scheme process." t)
(define-key global-map "\C-cs" 'run-scheme) ; C-c s で emacs 上で MzScheme が走るようにする
;; Emacs を scheme 専用に使う時には以下を追加すると便利
(setq inhibit-startup-message t) ; 起動画面を表示しない
(run-scheme scheme-program-name) ; 起動時にいきなり scheme 処理系を走らせる
これで、準備完了です。
Scheme のコードの作成と、テストを Emacs の内部でできるので便利です。
図1にスクリーンショットを示します。
上のウィンドウでコードを編集し、下のウィンドウで実行します。
この環境を使うと関数単位でテストできるのでストレスなくプログラムを書くことができます。
具体的な使い方は次の章以降で解説していきます。

図1: emacs 上で scheme のコードを編集し、テストしているところ
5. 終わりに
scheme.ini の設定や PATH の設定のほかには特に難しい点は
無いので、無事、インストールできたことと思います。
次回は、インストールした処理系を電卓代わりに使ってみます。
HOME |
もうひとつの Scheme 入門 |
2. Scheme を電卓代わりに使う |
書き込む |