elispの勉強をしている俺様がハマりましたよ。
デフォルト状態のEmacsでは、
[Ctrl-x Ctrl-e]が[eval-last-sexp]に対応するので、
短い式を書き、その直後にカーソルを置いて[Ctrl-x Ctrl-e]とすることで式を評価できる。
...そんな感じの手順で、今elispを勉強している。
今回ハマったのが四則演算子を引数0個で評価した時の返り値についてである。
結論的には、elispでは次のような値が返る。
(+) => 0
(-) => 0
(*) => 1
(/) => error
で、さらに結論的には、これはelispの定義であるらしい。
(GNU Emacs Lispリファレンスマニュアルより)
そもそも引数0個の四則演算子が値を返す、つーのが理解できなかった。
それって何か意味あるの??
...理解できなかったので、clispで試したところ、
(+) => 0
(-) => error
(*) => 1
(/) => error
になった。
なぜ両者(elispとclisp)で+と*のみ定義されていて、他は不定なんだろうか。
何を実現したくてこういう風になっているのか。
イマイチ理解できないでいるので、識者には理解のためのポインタを示していただけると嬉しいです。

Leave a comment