See the thread here 

http://lists.gnu.org/archive/html/guile-user/2012-11/msg00032.html

In Guile 2.0.6

(define f (case-lambda*
             ((x #:optional y) 1)
             ((x #:key y)      2)
             ((x y #:key z)    3)))

(f 1 2 #:z 3) -> Odd length of keyword argument list

Also

(define g (case-lambda*
                      ((a #:key x) 1)
                      ((a b c #:key x) 3)))

(g 1 2 3) - > Invalid keyword

This behavior doesn't seem useful and doesn't follow from the doc on 
case-lambda*, which is rather vague and lacks examples.

The case-lambda* test in tree-il.test also fails on the REPL

(let ((f (case-lambda*
          ((x #:optional y) 1)
          ((x #:key y)      2)
          ((x y #:key z)    3))))
  (list (f 1)
        (f 1 2)
        (f #:y 2)
        (f 1 2 #:z 3)))

-> Odd length of keyword argument list

Thanks,

        Daniel




Reply via email to