Quack: Enhanced Emacs Support for Editing and Running Scheme Code


公式サイト

Quack: Enhanced Emacs Support for Editing and Running Scheme Code

導入方法

  1. 公式サイトへ行ってquack.elをdownloadしてくるか、ないしはここの下にあるAttachmentsからUTF-8用修正版quack.elをダウンロードする。
  2. Debian系Linuxディストリビューションなら、
    /usr/share/emacs/site-lisp/
    にダウンロードしたquack.elを入れる。
    あるいは、Emacsのパスが通っているディレクトリにquack.elを置いても良い。
  3. 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上の拡張ファイルとなった。
  • 一つの背景として、SchemeCommon Lispも同じLisp系言語であるが、Emacs上のCommon Lispの開発環境の充実度に比べて歴史的にSchemeのそれは弱かった。
  • また、Scheme用のEmacs拡張ファイルは他にも存在していたが、単一の処理系に準じたものしか存在しなかったりして、やはりCommon Lispに比べて遅れていたと思われる。
  • Pretty Lambdaと言う、lambdaをλと表示させる無駄な機能がある。
  • Pretty Lambdaは[Quack]→[Options]→[PLT Style]で[Pretty Lambda]を選択すれば良い。
  • Quackはまだ新しい拡張ファイルなので、今後の発展が期待出来る。

備考

  • テキストブラウザのw3mGNU 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の呼び水になるか?

ċ
quack.el
(188k)
イカ娘,
2009/12/23 19:42
Comments