« Ruby/Rails勉強会@関西-30メモ | メイン | 実践Common Lispを読んでみる(その2) »
2008年9月24日
実践Common Lispを読んでみる(その1)
ついにCommon Lispに浮気することにしました。とりあえず今日は第2章までとそれ以前の問題として環境構築のお話を。
当方の環境:Debian(etch)においてとりあえずインストールするものは
$ sudo apt-get install slime sbcl hyperspec
これで一通りのファイルは取得できます。hyperspecは/root/tmp以下に保存されたので自分のhomeの.emacs.dフォルダ以下に展開しておきました。
続いて.emacs.dの編集
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;slime
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(add-to-list 'load-path "/usr/share/emacs/site-lisp/slime/")
(add-hook 'lisp-mode-hook (lambda ()
(slime-mode t)
(show-paren-mode)))
(require 'hyperspec)
(setq common-lisp-hyperspec-root
(concat "file://"
(expand-file-name "~/.emacs.d/HyperSpec/")
)
common-lisp-hyperspec-symbol-table
(expand-file-name "~/.emacs.d/HyperSpec/Data/MapSym.txt")
)
(require 'slime)
(setq slime-net-coding-system 'utf-8-unix) ;; 日本語利用のための設定(Lisp 環境側の対応も必要)
(setq inferior-lisp-program "sbcl")
(add-hook 'inferior-lisp-mode-hook (lambda () (inferior-slime-mode t)))
(add-hook 'lisp-mode-hook
(lambda ()
(slime-mode t)
(show-paren-mode)
(global-set-key "\C-cH" 'hyperspec-lookup)
)
)
(slime-autodoc-mode)
;; These are the 3 CL implementations that currently work with SLIME/Win32:
;; (Note: Unless you want to try out all 3, you only need one of these functions)
;; CMU Common Lisp - http://www.common-lisp.net/project/cmucl
(defun cmucl-start ()
(interactive)
(shell-command "~/local/bin/lisp -core ~/local/lib/cmucl/lib/user.core -load ~/.slime.lisp&"))
;; SBCL
(defun sbcl-start ()
(interactive)
(shell-command "sbcl --core ~/local/lib/sbcl/main.core --load ~/.slime.lisp &"))
;; GNU CLISP - http://clisp.cons.org/
(defun clisp-start ()
(interactive)
(shell-command (format "clisp -K full -q -ansi -i %s/.slime.lisp &" (getenv "HOME"))))
えー、google-code-prettifyがlispに対応してないので若干コードが見づらいですが基本的にはEmacs による Lisp Hackingをそのままコピペしただけです、はい。
作業は全部Emacs上で行います。基本的な流れとしては- M-x slimeでREPL(対話式のLispバッファ)を起動
- 直接REPLでLispを実行するか、別バッファでLispファイルを編集しコンパイルしてからREPLで評価
- C-c C-q (slime-close-parens-at-point) 必要な閉じ括弧を全て閉じる
- C-c C-c (slime-compile-defun) 関数定義をLispに送信し、評価、コンパイルを行う
- ,(slime-handle-repl-shortcut) コマンドを入力するプロンプトを表示、ここでquitかsayoonaraでslimeを終了
ついでになんとなく画面写真を載せてみる
投稿者 mak : 2008年9月24日 05:07
トラックバック
このエントリーのトラックバックURL:
http://sorakaze.net/cgi-bin/blog/mt-tb.cgi/138
コメントする