inf-clojure.elを書いた

Clojureの本をだいぶ前に買っていい加減勉強しようかなと思って
いろいろ Emacsの設定をしていたんですけど、SLIMEを古いバージョンに
しないといけないみたい。SLIMEを酷使しているわけでもないので、別に
最新版でなくても問題ないとは思うんですけど、そのためだけに古いのを
使うというのがどうかなと思ったので、REPLとやりとりするシンプルな
ものを書きました。


コードの 95%ぐらいは schemeのものを流用しました。

設定

inf-clojure.elを load-pathの通ったディレクトリに置き、
設定ファイルに以下を追加します。

(require 'inf-clojure)

操作

M-x run-clujureをします。あとはその他と同じです。


キーはなるべく slimeっぽくしました。"C-c C-c"で関数定義、"C-c C-k"で
ファイル全体のロード。コンパイルはクラスパスの設定やら何やらが
必要そうだったので保留。"C-c C-z"で REPLバッファをポップアップ、
"C-c C-d"でドキュメントを引く、"C-c C-x"で macroexpandに渡す
というのが主な操作です。

jarkと clj-env-dirで動作することを確認しています。


しかし jarkの REPLは改行が含まれるとエラーが返るって
どうなんでしょうね?なんで関数を渡すときはいちいち改行を
削除しています。

イメージ

おわりに

ヘビーに Clojureを使う人は SLIMEを使ったほうが絶対にいいと思いますが、
私のようなちょろっと関数を定義して、実行してお勉強みたいな
場合はこれぐらいで十分ですね。


Schemeにしても、Rubyにしても REPLとやりとりするコードって
とても似たような感じだったので、フレームワークみたいなのを
作って共通化してくれるといろいろ助かりそうだなと思いました。