優しいEmacs-Lisp講座
一応もう1回貼っておこう.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
http://www.gentei.org/~yuuji/elisp/elisplec.html
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
上記ページの内容を読んでみる.
Emacs Lispの構文
変数
;; シンボルfooへ値5を代入 (set 'foo 5) ;; (setq foo 5) ;; この式は上記式と等価 ;; 変数の宣言 ; defvar は,変数の宣言のみを行う (defvar シンボル 初期値 ドキュメンテーション文字列) ;; 変数のバインド ; setqやdefvarは全てグローバル変数となるので,ローカル変数をletで定義する. (let (変数リスト) 実行部)
制御構造
- if
- 第1引数を評価し,それがnilでない値を返したならば,第2引数を評価.その結果を返す.nilだったならば,(存在すれば)第3引数を評価し,それを返す.
- or
- 与えられた引数全てを順に評価し,nilでないものがあったならば,それを返す.もし全てがnilだったならば,nilを返す.
- and
- 与えられた引数を順に評価し,nilを返すものが見つかったならば,nilを返す.最後の引数までnilを返すものがなかった場合,最後の引数の値を返す.
- cond
- 与えられた条件式を順に評価していき,どれかがnilでなかったとき,その条件式の本体を実行する.
- while
- 最初の条件式がnilで無い限り,第2引数以降の式を繰り返し評価する.
- catch,throw
- タグで指定したものが,本体(実行部)でthrowされると直ちにcatchを抜ける.
;; if (if CONDITION T-body Else-body...) (if CONDITION (progn T-body...) Else-body...) ;; prognは,任意個の引数を取り,最後の値をprognの値として返す. ;; or (or foo-key-map (setq foo-key-map (make-key-map))) (if (or A B) 処理) ;; 「または」という意味で使用する例 ;; cond (cond (式1 式1がnon-nilの時に返す式...) (式2 式2がnon-nilの時に返す式...) : (式n 式nがnon-nilの時に返す式...)) ;; while (while 条件式 実行部...) ;; catch, throw (catch タグ 実行部...) (throw タグ 値)
章末問題2
これで良いのかな?
char-to-stringを使ってないけど….
それにバッファ消去するっつっても,バッファ内に書かれてるテキストを全消去するだけだし.
(defun jibaku () (interactive) (message "自爆") (ding (setq visible-bell t)) (erase-buffer) )