SPECIAL 型の場合は、引数は評価されず SPECIAL 型の関数に渡される。その 後各引数が評価されるかどうかは SPECIAL 型の各関数に依存する。
SPECIAL 型の関数の例としては setq や、cond などがある。こうしてみると SPECIAL 型を関数とは呼ばない lisp もあるのもうなずける。
SPECIAL 型の関数はすべて C で記述されており、ユーザが定義することはで きない。SPECIAL 型の動作をする関数を定義したい場合は以下で説明する MACRO 型の関数を defmacro で定義して使う。