2010年1月2日土曜日

DrScheme で Emacs のキーバインディング

関数型言語 界隈の話を読んでいると、必ずどこかで顔を出すのが「継続」と「マクロ」。Haskell でも Continuation モナド を理解するには、Scheme を触っておくのが手っ取り早いのかな。 Lisp 系の言語はいじったことがないので、これを機にやってみようかな。以前から SICP は読んでおかねばと思いつつ、ずっと放置していた。 ^^;

しかし、いきなり SICP は無理なので、

で勉強しませう。

 

DrScheme でお手軽に試す

上記サイトで紹介されていた処理系は、

Scheme 入門 1. Scheme 処理系のインストール によると、

DrScheme を利用する場合は MzScheme も同時にインストールされます。そのため、MzScheme を単独でインストールする必要はありません。実は、MzScheme は PLT-Scheme という処理系のエンジン部分で、DrScheme は PLT-Scheme のフロントエンドです

(太字は引用者による)

Emacs から使う方法も説明がされていたけれど、お手軽に GUI の環境で DrScheme を試すことに。

 

Emacs のキーバインディング

DrScheme のデフォルトのキー操作では思うように動かせない。 (+_+) Emacs と同じキー操作にできないかと調べたら、

If you are most familiar with Emacs-style key bindings, you should uncheck the Enable keybindings in menus preference.

(3.3 Keyboard Shortcuts より)

メニューより、「Edit > Preferences… > Editing > General」の Enable keybindings in menus のチェックをはずす。

testtest.png

これで快適~ ^^

 

実行と編集

Emacs で Haskell のコードを実行するときは C-c C-l 。C-x o で元のソースコードに戻って編集ということを繰り返す。 DrScheme では、

  • F5 で実行
  • F6 でエディタに戻る

括弧単位でカーソルを移動するには、

  • M-C-f : move forward one S-expression

  • M-C-b : move backward one S-expression

    (3.3 Keyboard Shortcuts より)

  • ただし、

    Under Windows and Mac OS X, Meta is only available through the Escape key.

    (同上より)

    メタキーは Alt ではなく、Escape を押さないといけないようなので、慣れるまで面倒に感じる。素直に Emacs で Scheme を使えるようにした方がいいかも… (+_+)