Quick vote about portable keyword argument syntax
Lassi Kortela
(01 Nov 2019 19:44 UTC)
|
Re: Quick vote about portable keyword argument syntax
Marc Feeley
(01 Nov 2019 20:12 UTC)
|
The name of "keyword-call"
Lassi Kortela
(01 Nov 2019 20:45 UTC)
|
Re: The name of "keyword-call"
Lassi Kortela
(01 Nov 2019 20:51 UTC)
|
Re: The name of "keyword-call"
John Cowan
(01 Nov 2019 20:54 UTC)
|
Re: The name of "keyword-call"
Lassi Kortela
(01 Nov 2019 20:59 UTC)
|
Re: The name of "keyword-call"
John Cowan
(01 Nov 2019 21:30 UTC)
|
lambda*
Lassi Kortela
(01 Nov 2019 21:47 UTC)
|
Re: lambda*
John Cowan
(01 Nov 2019 21:48 UTC)
|
Re: lambda*
Lassi Kortela
(01 Nov 2019 21:59 UTC)
|
curry/partial
Lassi Kortela
(01 Nov 2019 22:18 UTC)
|
Re: curry/partial
John Cowan
(01 Nov 2019 22:47 UTC)
|
Re: The name of "keyword-call"
Marc Nieper-Wißkirchen
(02 Nov 2019 16:23 UTC)
|
Re: The name of "keyword-call"
Lassi Kortela
(02 Nov 2019 23:16 UTC)
|
Re: The name of "keyword-call"
hga@xxxxxx
(01 Nov 2019 21:34 UTC)
|
Re: Quick vote about portable keyword argument syntax
Per Bothner
(01 Nov 2019 20:57 UTC)
|
Re: Quick vote about portable keyword argument syntax
Lassi Kortela
(01 Nov 2019 21:06 UTC)
|
Re: Quick vote about portable keyword argument syntax
Marc Nieper-Wißkirchen
(02 Nov 2019 16:22 UTC)
|
Re: Quick vote about portable keyword argument syntax Marc Nieper-Wißkirchen (02 Nov 2019 16:42 UTC)
|
Re: Quick vote about portable keyword argument syntax
John Cowan
(02 Nov 2019 16:48 UTC)
|
Re: Quick vote about portable keyword argument syntax
Marc Nieper-Wißkirchen
(02 Nov 2019 16:57 UTC)
|
Re: Quick vote about portable keyword argument syntax
Lassi Kortela
(02 Nov 2019 23:28 UTC)
|
Re: Quick vote about portable keyword argument syntax
Lassi Kortela
(02 Nov 2019 23:47 UTC)
|
Re: Quick vote about portable keyword argument syntax
John Cowan
(03 Nov 2019 02:36 UTC)
|
Re: Quick vote about portable keyword argument syntax
Marc Nieper-Wißkirchen
(03 Nov 2019 08:49 UTC)
|
Re: Quick vote about portable keyword argument syntax
Lassi Kortela
(03 Nov 2019 09:56 UTC)
|
Re: Quick vote about portable keyword argument syntax
Marc Nieper-Wißkirchen
(03 Nov 2019 10:27 UTC)
|
Re: Quick vote about portable keyword argument syntax
Lassi Kortela
(03 Nov 2019 11:17 UTC)
|
Re: Quick vote about portable keyword argument syntax
Marc Nieper-Wißkirchen
(03 Nov 2019 11:31 UTC)
|
Re: Quick vote about portable keyword argument syntax
Lassi Kortela
(03 Nov 2019 12:41 UTC)
|
Re: Quick vote about portable keyword argument syntax
Marc Nieper-Wißkirchen
(03 Nov 2019 15:20 UTC)
|
Re: Quick vote about portable keyword argument syntax
Lassi Kortela
(03 Nov 2019 15:40 UTC)
|
Re: Quick vote about portable keyword argument syntax
Lassi Kortela
(03 Nov 2019 15:50 UTC)
|
Re: Quick vote about portable keyword argument syntax
John Cowan
(03 Nov 2019 19:39 UTC)
|
Am Sa., 2. Nov. 2019 um 17:21 Uhr schrieb Marc Nieper-Wißkirchen <xxxxxx@nieper-wisskirchen.de>: > > Am Fr., 1. Nov. 2019 um 20:44 Uhr schrieb Lassi Kortela <xxxxxx@lassi.io>: > > > > Can we have a quick vote about who prefers the current option 1: > > > > (keyword-lambda (a b (c d e)) <lambda body ...>) > > > > (keyword-call foo 1 2 (e 5 c 3 d 4)) > > > > And who would prefer option 2 where all of these are supported: > > > > (keyword-lambda (a b :key c d e) <lambda body ...>) > > > > (keyword-call foo 1 2 e: 5 c: 3 d: 4) ; In all Schemes > > (keyword-call foo 1 2 :e 5 :c 3 :d 4) ; In all Schemes > > (keyword-call foo 1 2 #:e 5 #:c 3 #:d 4) ; In Schemes that have #: > > > > Option 1 can be implemented with syntax-rules and tail patterns. > > > > Option 2 needs syntax-case, explicit-renaming, or define-macro. It can > > be implemented equally well in Schemes that have native read syntax for > > keywords, and Schemes that don't. The trick is to treat a symbol > > starting or ending with a colon as a keyword. > > How do you want > > (let ((:e 3)) > (keyword-call foo 1 2 :e 4)) > > being handled? > > While Option 2 looks much better than Option 1, it doesn't seem to > work well when the underlying Scheme does not have a separate keyword > type (and keyword syntax). > > So what about the following Option 3? > > (keyword-call foo 1 2 : e 5) > > In Schemes with a keyword reader syntax, it can be expressed as > > (keyword-call foo 1 2 #:e 5) > > Option 3 is also implementable using syntax-rules alone. P.S.: And keyword-lambda (lambda/kw) could be: (lambda/kw (a b c : e x <default> ...) ...) If possible, lambda/kw should become a synonym of lambda (and the syntax of define should allow keywords as well).