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 が使えるようになれば良いのだと思う。
が、道は長いね。。。