7.6.5.1. ジェネリック関数とメソッドのキーワード引数の例
例えば、下記の2つのwidthメソッドが定義されていることを考えます。
(defmethod width ((c character-class) &key font) ...)
(defmethod width ((p picture-class) &key pixel-size) ...)その他のwidth以外のメソッドとジェネリック関数は存在しないと仮定します。 下記のフォームを評価したときには、 キーワード引数:pixel-sizeが適用可能なメソッドで受け付けられないため、 エラーが発せられます。
(width (make-instance 'character-class :char #\Q)
       :font 'baskerville :pixel-size 10)下記のフォームの評価は、エラーが発せられます。
(width (make-instance 'picture-class :glyph (glyph #\Q))
       :font 'baskerville :pixel-size 10)下記のフォームの評価は、もしcharacter-picture-classという名前のクラスが、 picture-classとcharacter-class両方のサブクラスであった場合には、 エラーにはならないでしょう。
(width (make-instance 'character-picture-class :char #\Q)
       :font 'baskerville :pixel-size 10)