[cl-ppcre-devel] Problems with a regexp using CL-PPCRE 0.7.4

Kick Damien-DKICK1 DKICK1 at motorola.com
Thu Mar 11 15:09:58 UTC 2004


Edi Weitz [edi at agharta.de] wrote:

Thanks for the reply.  I'll try the things you mentioned but I just
wanted to get to one thing, first.

> Some ideas:
> 
> 1. Your methods for the generic function EXPECT don't have congruent
>    lambda lists:
> 
>      > ;; expected is a parse-tree
>      > (defmethod expect ((expected t) (spawn stream)
>      >                    &key (echo *standard-output*)
>      >                         case-insensitive-mode
>      >                         multi-line-mode
>      >                         single-line-mode
>      >                         extended-mode
>      >                         destructive)
>      >   #| ... |#)
>      >
>      > ;; expected is a scanner
>      > (defmethod expect ((expected function) (spawn extensions::process)
>      >                    &key (echo *standard-output*))
>      >   #| ... |#)
> 
>    This can lead to incosistent behaviour of all sorts, so you should
>    change that first and see if it makes a difference.

When you write that the lambda lists are not congruent, I assume you
mean that they have different keywords and are, therefore, not
congruent.  Consider the CLHS section 7.6.4
<http://www.lispworks.com/reference/HyperSpec/Body/07_fd.htm>:

        4. If the generic function lambda list mentions &key, each
        method must accept all of the keyword names mentioned after
        &key, either by accepting them explicitly, by specifying
        &allow-other-keys, or by specifying &rest but not &key.  Each
        method can accept additional keyword arguments of its own.
        [...]

I believe that that all of the EXPECT methods are congruent by that
definition.  Or did you have something other than keyword argument
equivalence in mind whne you wrote about the lambda lists not being
congruent?




More information about the Cl-ppcre-devel mailing list