« 実践Common Lispを読んでみる(その2) | メイン | 実践Common Lispを読んでみる(その4) »
2008年9月28日
実践Common Lispを読んでみる(その3)
さて、しばらく開きましたがぼちぼち読んでいます、はい。今日は第5章まで読んだのでそこまでのまとめでも。
まずは前回の訂正から。ime-onoff-slimeが実はまだおかしかったのでこのように修正しました。
(defun ime-onoff-slime () (interactive) (if slime-mode (progn (slime-mode nil) (toggle-input-method)) (if (string= major-mode "lisp-mode") (progn (slime-mode t) (toggle-input-method)) (toggle-input-method)) ) )
これでとりあえず私の希望通りには動いてくれました。調べて分かったのですが、上記のstring=ってそれだけで文字列比較のマクロらしいです、へぇ。
第3章でCDデータベースを作りながらいろいろCommon Lispの解説を行い、4章から具体的な説明に入りました。
覚えたコマンド- C-c C-k (slime-compile-and-load-file) ファイル全体をコンパイル+ロード
- C-c M-k (slime-compile-file) ファイル全体をコンパイルするのみ
- C-M-q (indent-sexp) (開き括弧で)式全体のインデントを修正
- C-c M-q (slime-reindent-defun) 関数の本文全体のインデント修正
あと、C-c C-cはあんまり使わずにこれからはC-c C-kを使う方向で。C-c C-cはその関数しかコンパイルしてくれないので、複数の関数を定義してまとめてコンパイルしたい場合はC-c C-kがいいです。あと、同じ関数名で定義してしまいエラーとなったらREPLでloadしなおしてください。
それとコメントの定義でこんなことがかかれてました。- ;;;; (セミコロン4つ)・・・ファイルヘッダのコメント
- ;;; (セミコロン3つ)・・・後に続く大きなコードセクションに対する段落関数(関数全体の説明)
- ;; (セミコロン2つ)・・・以降のコードに対するコメントであることを示す、そのため,以降に続くコードと同じインデントにする
- ; (セミコロン1つ)・・・特定の行にだけに対するコメント
- defun・・・関数定義、順番に評価され、最後の式の値が返り値となる
- &optional・・・引数が与えられていればそれを使用し、ない場合はデフォルトの値かNIL
- &rest・・・引数をリストにして渡す
- &key・・・シンボルとパラメータを引数として使う
投稿者 mak : 2008年9月28日 01:43
トラックバック
このエントリーのトラックバックURL:
http://sorakaze.net/cgi-bin/blog/mt-tb.cgi/140
コメント
片言に本語で失礼します。
上記のime-onoff-slimeでlisp-modeでちゃんと効くんですけど、REPLではまた効かなくなっちゃうのです。
投稿者 アンガス : 2010年5月18日 09:44
コメントする