公式サイト
Quack: Enhanced Emacs Support for Editing and Running Scheme Code
導入方法
- 公式サイトへ行ってquack.elをdownloadしてくるか、ないしはここの下にあるAttachmentsからUTF-8用修正版quack.elをダウンロードする。
- Debian系Linuxディストリビューションなら、
/usr/share/emacs/site-lisp/
にダウンロードしたquack.elを入れる。
あるいは、Emacsのパスが通っているディレクトリにquack.elを置いても良い。
- Emacsの設定ファイルである.emacsに次の一行を書き加える。
(require 'quack)
- 注:Ubuntu 9.10からはQuackはemacs-goodies-elと言うパッケージに同梱される事になりました。
sudo aptitude install emacs-goodies-el
でインストール可能です。
特徴
- 元々MzScheme用として開発された、との事。
- DrSchemeはGUI版のMzScheme、として秀悦な出来だが、一方、キーバインド等が「Windowsライク」で「Emacsユーザーの好みから」かけ離れている。
- また、DrSchemeは初心者に取っ付き易いが、Emacsの隠れた「豊富な機能」に比べるとやはり劣る、と感じられたようだ。
- そこで、DrScheme並のとっつき易い開発環境をEmacsに移植するのが目的、となったらしい。今はMzScheme以外の数多いScheme処理系にも対応している。
- 結果として、殆どのScheme処理系の為のDrSchemeっぽいEmacs上の拡張ファイルとなった。
- 一つの背景として、SchemeもCommon Lispも同じLisp系言語であるが、Emacs上のCommon Lispの開発環境の充実度に比べて歴史的にSchemeのそれは弱かった。
- また、Scheme用のEmacs拡張ファイルは他にも存在していたが、単一の処理系に準じたものしか存在しなかったりして、やはりCommon Lispに比べて遅れていたと思われる。
- Pretty Lambdaと言う、lambdaをλと表示させる無駄な機能がある。
- Pretty Lambdaは[Quack]→[Options]→[PLT Style]で[Pretty Lambda]を選択すれば良い。
- Quackはまだ新しい拡張ファイルなので、今後の発展が期待出来る。
備考
- テキストブラウザのw3mとGNU EmacsのWebブラウジング用拡張ファイル、w3m.elをインストールしていた方が良い。
(Debian系Linuxならレポジトリからapt-getで簡単に入手出来る筈)
- ただし、Windows版Emacsでは、w3mのインストールは難しい(と言うより、Windowsにw3mをインストールするのが難しい)。
代わりにQuackの[Quack]→[Options]→[Web Browser]で[MS Windows Default]を選べば、QuackからIEやFirefoxを呼び出す事が可能だろう。
- ないしは、w3mをサポートしているMeadowを使えば良いだろう。
- Quackもバイトコンパイル出来る。バイトコンパイルすると、ロード時間の短縮や、占有メモリの縮小化に役立つので、Emacsに慣れている人はこれを用いると良いだろう。
例えば、Debian系ディストリビューションでのEmacsのパスを用いると、端末で、
sudo emacs -batch -f batch-byte-compile /usr/share/emacs/site-lisp/quack.el
と打てばバイトコンパイル済みのファイルquack.elcが作成されて、以下これが用いられる。
スクリーンショット
|
|
Quackを導入したGNU Emacs。
上部のプルダウンメニューに[Quack]が追加され、これによりWindowsライクなScheme用GUI環境がEmacs上に実現される。
ここから[Run Scheme]を選び→[Enter]を押す事でScheme処理系が走り出す。
|
|
|
[Run Scheme]するとEmacsの画面が二分割されて下段でScheme処理系が走り出す。
デフォルトはMzSchemeだが、[Options]の[Defaut Programs]で十種類以上の選択肢から好みの処理系を選べる(インストールされていれば、だが)。
|
|
|
Quackとw3m(テキストブラウザ)の組み合わせは最強である。
QuackはいくつかのScheme関係の無料Webページにアクセス出来るようになっている。
なお、修正版quack.elの場合、いくつかのコンテンツを日本語で読めるアドレスに変更している。
また、紫藤のページのもうひとつのScheme入門のページも追加しておいた。
これで、Scheme学習用としては最強の環境となったわけだ。
|
|
|
GNU Emacsの画面分割機能を使えば、w3mによりEmacs上でブラウザを走らせながらSchemeコードを書いて、実行が可能だ。
w3mでもうひとつのScheme入門を読みながら(もちろん他のテキストでも構わないが)例題のコードを.scmファイルに書き込みC-x C-eで評価する。
古典的なテキストブラウザをEmacs上で使う事でシンプルに作業出来るのだ。
|
|
|
QuackのPretty Lambdaの例。
コード例はもうひとつのScheme入門のfarg.scmから。
ラムダ式のlambdaと言う表記がλとして印字されている。
「可愛いだけ」の機能なのでまさしくPretty Lambdaと呼ぶにふさわしい。括弧の嵐の中のオアシスである(謎)。
女子高生Schemerの呼び水になるか?
|
|
ď masashi.kameda@gmail.com, 2009/12/23 19:42
|