| トップ | 読書感想文 | ニュース | Ukki |
LISPメモ

LISP処理系

SBCL
CLISP (GPL)
CMUCL
GCL

なぜLISPの関数名は小文字と-なのか?

これはLISPが内部でシンボル(関数名を現すのにも使われている)を大文字に変換したもので管理していて、fooとFooとFOOはすべて同じシンボルになってしまうから。すると、getValue()は潰れてしまってよろしくないからだろう。また、シンボル名にアンダースコアも使えない

IFは、なぜ関数ではなくスペシャルフォームなの?

(if a (+ 1 2) (- 2 1))
関数フォームだと、リストはすべて評価されてしまうので、(+1 2)と(- 2 1)の両方が評価された上で、ifに処理がまわってくる。これだと両方の処理が実行されてしまうので、スペシャルフォームとなっているのだと思う。

ifスペシャルフォームでは、最初の引数が評価され、それの結果によって2つ目の引数か3つ目の引数が評価される。

Top
Index
Search on Ukki

login

Sections:
LISP処理系
なぜLISPの関数名は小文字と-なのか?
IFは、なぜ関数ではなくスペシャルフォームなの?