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)))

ってしとけば、マッチしないパターンが与えられた時に捕捉できる。