Common Lisp で、特殊化する引数がキーワード引数であるジェネリック関数を作成する方法はありますか?
たとえば、これではなく:
CL-USER> (defgeneric tst (a))
#<STANDARD-GENERIC-FUNCTION TST (0)>
CL-USER> (defmethod tst ((a list))
(print a))
#<STANDARD-METHOD TST (LIST) {1004ECC903}>
..引数 'a' を指定します。私は次のことを望みます:
CL-USER> (defgeneric tst (&key a))
#<STANDARD-GENERIC-FUNCTION TST (0)>
CL-USER> (defmethod tst (&key (a list))
(print a))
#<STANDARD-METHOD TST (LIST) {1004ECC903}>
明らかに、これはキーワード引数のデフォルト値を設定するための構文と衝突するので、私は少し立ち往生しています。実際のコードでは、この問題は関連しています。別の引数レイアウトを選択したので、これは問題ではありませんでした (起動するのが少し整頓されていました!)。
乾杯