matchでのエラー処理
はい、まだまだ9章5節。
依然としてmake-playerは奇数個の引数を受け付けない。
「奇数個の引数に適用することを受け付けない」というのは無理だけど、せめてもう少しわかりやすいエラーメッセージを出したい。
ということで、matchで全てのパターンにマッチする節の登場。
(match lis (() '()) ((attr value . rest) (cons (cons attr value) (loop rest))) (_ (error "Number of arguments must be even:" args)))
ってしとけば、マッチしないパターンが与えられた時に捕捉できる。