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] |
>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.