Hello CL Pros,
I am trying to understand the meaning in conforming ANSI CL
of the following code snippet and I am not quite sure what to think of it:
(defgeneric foo (a b &key))
(defmethod foo (a b &key c d) (or c d 42))
At this point should a call to foo accept any keyword
argument, no keyword argument or only :c and/or :d?
What would be the outcome of this:
(foo 1 2 :d 3)
Is it an error being signaled or the value 3 being returned?
I am inclined to believe that an error should be signaled,
since the generic function lambda-list contains no
explicit keyword argument and no &allow-other-keys.
Reading CLHS 7.6.4 it seems to me that
(defgeneric foo (a b &key)) and