ほんとのこと知りたいだけなのに。

夏休みはもうおわり。

Emacs Lisp 制御構造のオペレータ一覧

あれ? cond ってあったっけと思い一覧を作成。

9. 制御構造から抜粋。

制御構造のオペレータ一覧

9.1 逐次実行

type contents
Special Form progn forms...
Special Form prog1 form1 forms...
Special Form prog2 form1 form2 forms...

9.2 条件付き実行

type contents
Special Form if condition then-form else-forms...
Macro when condition then-forms...
Macro unless condition forms...
Special Form cond clause...

9.3 条件の組み合わせ

type contents
Function not condition
Special Form and conditions...
Special Form or conditions...

9.4 繰り返し

type contents
Special Form while condition forms...

9.5 非ローカル脱出

type contents
Special Form catch tag body...
Function throw tag value

9.5.3 エラー

9.5.3.1 エラーの通知方法

type contents
Function error format-string &rest args
Function signal error-symbol data

9.5.3.3 エラーハンドラの書き方

type contents
Special Form condition-case var protected-form handlers...
Function error-message-string error-description

9.5.4 非ローカル脱出時の後始末

type contents
Special Form unwind-protect body cleanup-forms...

おわり

cond はありましたね。

制御系は Common Lisp とさほど変わらん感じですね。

Emacs Lisp のリスト操作オペレータの一覧

Common lisp をやっていると Emacs Lisp が結構つらい。

なぜならオペレータが微妙に一緒で微妙に違うからだ。
これがなかなか覚えられなくて毎度こまる。

本日はリスト操作にストレスを感じたので一覧にしてみた。 一覧は 5. リスト から抜粋した。

リスト操作オペレータの一覧

5.3 リスト向け述語

type operator
Function consp object
Function atom object
Function listp object
Function nlistp object
Function null object

5.4 リストの要素の参照

type operator
Function car cons-cell
Function cdr cons-cell
Function car-safe object
Function cdr-safe object
Function nth n list
Function nthcdr n list
Function safe-length list
Function caar cons-cell
Function cadr cons-cell
Function cdar cons-cell
Function cddr cons-cell

5.5 コンスセルとリストの構築

type operator
Function cons object1 object2
Function list &rest objects
Function make-list length object
Function append &rest sequences
Function reverse list

5.6 既存のリスト構造の修正

5.6.1 setcarによるリスト要素の変更

type operator
Function setcar cons object
Function setcdr cons object

5.6.3 リストの順序を変更する関数

type operator
Function nconc &rest lists
Function nreverse list
Function sort list predicate

5.7 集合としてのリストの利用

type operator
Function memq object list
Function delq object list
Function member object list
Function delete object list

5.8 連想リスト

type operator
Function assoc key alist
Function rassoc value alist
Function assq key alist
Function rassq value alist
Function assoc-default key alist test default
Function copy-alist alist

おわり

Common Lisp のオペレータが使えるようになるライブラリもあるけどバージョンアップや我田引水的なものに付き合うのは莫迦らしいので使わない。

Emacs Lisp が使えるようになれば良いのだと思う。

が、道は長いね。。。