In Chicken 4.8.0, procedures defined with #!optional no longer signal an exception if invoked with too many arguments. For example:

(define (foo x #!optional y) (list x y))
(foo 'x 'y 'too 'many 'args)

In Chicken 4.7, this would signal an exception, because the foo procedure expects a maximum of 2 arguments. In Chicken 4.8, the extra arguments are simply ignored.

I think this is a bug, because the docs for "Extended DSSSL style lambda lists" say:

If there is no rest-parameter  and no keyword-parameters in the
> parameter-list, then it shall be an error for any extra arguments to
> be passed to the procedure.

- John

_______________________________________________
Chicken-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to