Hi, On Sat, 6 Dec 2025 16:43:28 +0000 li lu <[email protected]> wrote:
> Yes it was similar to DSSSL, > but I think there are some differences between DSSSL and *varg*: > > - DSSSL define that parameters should keep particular type order: > - required parameter(similar to `#:literal` in *varg*) > - `#!optional` parameter(similar to `#:without-value` in *varg*) > - `#!rest` parameter(similar to `#:literal` when set `#:enable-unknown` in > *varg*) > - `#!key` parameter(similar to `#:with-value` in *varg*) > > *varg* does not require parameters are in particular order, > they are parsed by matching keywords between procedure > definition and procedure call > > - DSSSL set `#!optional` parameters to `#f` if > they are not bind to a default value and not presented in function call. > Usually I hope it can be explicit set or not, but not `#f` or others. > > - In DSSSL, usually `#!optional` parameters cannot show its meaning in > procedure calling, I have to move to procedure definition to get it. > In *varg*, by defining meaningful keyword, > I can know what this parameter is at the calling place, > without searching other code > > Those are what I try to improve about parameter parsing in *varg* Fair enough. Thanks for elaborating on the differences between varg and DSSSL. I was mostly checking whether you were aware of the support for DSSSL (which you are). Your egg has been added to CHICKEN 5 and CHICKEN 6. Thanks. All the best. Mario -- https://parenteses.org/mario
