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

Reply via email to