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: keyword args + CLOS





>The Scheme de facto standard for this is #!optional, which is problematic
>for various reasons, and &optional as in CL seems wrong,
>because I find it inappropriate for some identifiers to be reserved
>only in parameter lists. So I split the difference. If it is important
>to you to be able to use &optional and friends, I can add an option to
>make this work.

I don't have strong feelings about this. I wonder if perhaps #optional
might
not be a more clean syntax though.

>> Also, there's something I don't like about optargs. It leaves keyword
>> arguments in the rest argument
>> like lisp.
>
>It's notably more costly to remove them. I can do it, but I am not
>sure how people feel about this. Does anyone have experience with
>other Scheme implementations that have keyword arguments? What
>semantics do they have for combining it with a rest arg?

I _do_ have strong feelings about this. Optargs is all done with macros,
so for an efficient interpreter/compiler, the overhead must surely be nil
once the initial expansion/compilation is done.

I feel getting the interface right is the priority anyway. If the optarg
macros
don't strip them, then _surely_ the programmer will have to do it anyway.
Only
they will do it much more inefficiently, and with much ugly code. I just
can't
see any benefit in leaving them in.

> I have a new
> version which I am going to distribute as soon as I get a copyright
> disclaimer from my employer (I'm resorting to blackmail by threatening
> not to sign my employee agreement unless they sign my
> papers). However, if you would like a copy for testing/evaluation
> purposes, I can send one your way. It fixes this problem and adds a
> number of other useful features.

 Yes please - it would be nice to see it.