>681
"最小のLisp"にcondがあるのはプリミティブにprognを含めてないからだと思う
この場合ifとprognはcondを使って定義できる
逆にifとprognがプリミティブならcondはifとprognで定義可能
構文の数を最小にするならcondをプリミティブにするよね

パターンマッチとifもどっちかがプリミティブなら
もう一方はシンタックスシュガーとして定義できるはず
どちらをプリミティブとするかは言語の思想によって違う