優しい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 タグ 値)
算術

演算子

% 剰余
* 乗算
+ 加算
- 減算
/ 除算
1+ 1加算
1- 1減算
< 比較演算子
<= 比較演算子
= 比較演算子
/= 比較演算子(ノットイコールのこと)
> 比較演算子
>= 比較演算子
numberp(intergerp) 数値ならばtを返す



算術関数

max,min 引数の内,最大(最小)のものを返す.
random 24bit長の疑似乱数を返す引数としてtを与えると乱数の種を変えて値を返す.

章末問題2

これで良いのかな?
char-to-stringを使ってないけど….
それにバッファ消去するっつっても,バッファ内に書かれてるテキストを全消去するだけだし.

(defun jibaku ()
  (interactive)
  (message "自爆")
  (ding (setq visible-bell t))
  (erase-buffer)
  )