This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: An optional arguments interface


Maciej Stachowiak <mstachow@mit.edu> writes:

>     (lambda* (a b [c d] . e) '())

This is neat, but to me it feels a bit un-schemey to introduce that
kind of syntax.  It feels as if it's a new syntactic idea to demarcate
a part of the parameter list like that.  (We don't want the Scheme
syntax to evolve into something JAVA-like, do we? ;-)

Personally I think I'd prefer to add some special form inside those
"higher level" procedures which need optional arguments:

(lambda (a b . args)
  (letarg ((c <c-default>)
	   (d)
           e)
    (if (bound? d)
        ...)
    ...))

Best regards,
/mdj