LISPをみんなで勉強しよう!

LISPをこれから学びたいという方歓迎します!

SLIME をインストールしてみた!

最近ようやく livedoor Blog の新管理画面 に慣れてきた kyanny です。

突然ですが!あの Lingr が、復活するそうです! 速報:Lingrが江島氏の個人プロジェクトとして復活 めでたいですね!めでたいので、しれっとここしばらく更新のなかったブログを書いてみます(関係ない)

さて、先日 tokyo-emacs #x02 というイベントに参加したのですが((tokyo-emacs #x02) レポまとめ)、そこで web4r という、 Common Lisp でつくられたウェブアプリケーションフレームワークを知り(中略) Common Lisp やっぱいいなーやってみたいなーと思ったので、やってみることにしました。

Common Lisp をやるには SLIME というのを入れると良いっぽいので、過去ログを読んだりぐぐったりして SLIME をインストールしてみました。僕は MacPorts で入れた emacs-app (Emacs 23, Cocoa) を使っていて、 lisp パッケージは site-lisp 以下に全部入れることにしているので、 slime のアーカイブを展開してできたディレクトリを /Applications/MacPorts/Emacs.app/Contents/Resources/site-lisp/ に移動しました。フルパスは /Applications/MacPorts/Emacs.app/Contents/Resources/site-lisp/slime/ になるので、いちおう load-path に追加して、あとは slime を使えるようにする設定を追記しました。


;; slime
(add-to-list 'load-path "/Applications/MacPorts/Emacs.app/Contents/Resources/site-lisp/slime")
(setq inferior-lisp-program "sbcl")
(require 'slime-autoloads)
(slime-setup '(slime-repl))


SLIME は M-x slime で起動します。初期化に何秒か時間がかかります。体感だと結構長い時間です。 CL-USER> というプロンプトが表示されたら起動成功です。

このプロンプトに Common Lisp の式を入力すればいろいろできるというわけです。あ、ちなみに処理系じたいは sbcl を MacPorts で入れました。

僕は新しいソフトウェアの使い方を覚えることに喜びを感じるたちなので、 SLIME 特有の操作をぜひ覚えていきたいと思います。名付けて、開発環境駆動開発(じっさいには、かならずしも意味のあるコードを書くわけではないので、駆動まではともかく開発にあたるかは疑問です)。しかし、使い方がわからない・・・。

アーカイブを展開したディレクトリの中に doc/ というディレクトリがあり、そこにいろいろ説明が書いてあるそうなので、これを読んでみたいとおもいます。 Makefile があるけど make も make install もできなかったので、 pdf 版に目を通してみます。

以上、いろいろはしょってて乱暴な「やってみた」でした。

(+)の評価結果

kzfmです。

和を求める時に何も指定しないとどうなるのだろうとふと思ったので。

sbclで(+)を評価したら0になりました。そしてclispでも同様でした。

+を評価する場合まずは0を用意して、cdrがnilでない限り足し合わせているのでしょうか。

同様に(*)を評価したら1でした。

docstring

common lispにはdocstringを埋め込めるので、変数とか関数に簡単な説明文をつけられて便利です。そういえばpythonでも同じような仕組みがありますね。

で、defvarで設定したdocstringの表示の仕方がわからなくて2,3日悩んでいたkzfmです。

結論から言うとdocumentationでOKでした。documentationの二番目の引数に型を指定してやればよいのですね。

(defvar *foo* 10 "test foo")            ; *FOO*
(documentation '*foo* 'variable) ; "test foo"
(defun *foo* (a b) "test func" (+ a b)) ; *FOO*
(documentation '*foo* 'function) ; "test func"

最新コメント
参加者一覧
参加メンバーごとの記事を閲覧することができます。
kyanny 刺身☆ブーメラン
g00001 g000001
naoya_t naoya_t
yagiey_lv やぎ
kyanny kzfm
まなごん まなごん
記事検索