Email list hosting service & mailing list manager

s7 suggestion bil@xxxxxx (29 Oct 2019 13:40 UTC)
Re: s7 suggestion Lassi Kortela (29 Oct 2019 15:15 UTC)
Re: s7 suggestion bil@xxxxxx (29 Oct 2019 15:56 UTC)
Re: s7 suggestion Lassi Kortela (29 Oct 2019 16:19 UTC)
Re: s7 suggestion Lassi Kortela (29 Oct 2019 16:32 UTC)
Re: s7 suggestion bil@xxxxxx (29 Oct 2019 17:54 UTC)
Re: s7 suggestion Lassi Kortela (29 Oct 2019 18:07 UTC)
Re: s7 suggestion John Cowan (01 Nov 2019 21:27 UTC)
Re: s7 suggestion Lassi Kortela (01 Nov 2019 21:36 UTC)
Re: s7 suggestion John Cowan (01 Nov 2019 23:03 UTC)
&key vs :key in the lambda list Lassi Kortela (01 Nov 2019 23:17 UTC)
Re: &key vs :key in the lambda list John Cowan (01 Nov 2019 23:18 UTC)
Re: &key vs :key in the lambda list Lassi Kortela (01 Nov 2019 23:27 UTC)
Syntax for hygienic vs non-hygienic keywords Lassi Kortela (01 Nov 2019 23:33 UTC)
Re: allow-other-keys bil@xxxxxx (29 Oct 2019 19:51 UTC)
Re: s7 suggestion Marc Nieper-Wißkirchen (29 Oct 2019 16:33 UTC)
Re: s7 suggestion Lassi Kortela (29 Oct 2019 16:53 UTC)
Re: s7 suggestion bil@xxxxxx (29 Oct 2019 17:10 UTC)
Including 177 in s7? Lassi Kortela (29 Oct 2019 17:34 UTC)

Re: s7 suggestion Lassi Kortela 01 Nov 2019 21:35 UTC

>> The syntax may still change a bit; John advocates (keyword-lambda (a b
>> &key c d) ...) instead of (keyword-lambda (a b (c d)) ...).
>
> I see I have yet to write down why.  Two reasons:
>
> 1) The use of &key (I assume non-hygienically) is much more transparent to
> the human reader.  Parentheses could mean anything at all
>
> 2) It's much easier to search documentation for "&key" than to search for
> parenthesis-grouping rules.

These are good reasons.

While &key is used in Common Lisp lambda-list syntax, I would prefer
:key which is used by Gauche, Sagittarius and STklos. Guile and Racket
also use #:key which has the colon. So :key is closer to current Scheme
practice.

The twist is that some Schemes read :key as a keyword object whereas
others read it as a symbol. This shouldn't be a problem with a powerful
macro system (syntax-case, explicit renaming, define-macro) where we can
call procedures to convert between keywords and symbols at will.

&key does not have the above problem.

I also worked from the assumption that &key or :key is non-hygienic. In
the case of :key it probably has to be, since in some implementations it
will be a keyword object and those are currently non-hygienic everywhere.