Re: Keyword arguments in procedures specified in SRFIs
Marc Feeley 24 Jul 2019 14:05 UTC
> On Jul 24, 2019, at 9:42 AM, Lassi Kortela <xxxxxx@lassi.io> wrote:
>
>> The #: prefix was chosen due to prior art (Common Lisp). It makes sense to preserve the compatibility for
>> - programmers with prior experience with CL
>> - prior documentation, manuals and books on CL
>> - interoperability with CL (write a datum from CL and read it from Gambit, and vice-versa)
>> - past ~10 years of use by Gambit users
>
> Shiro and I also prefer CL-compatible syntax but my reading is that it's more controversial in this discussion than using #: for keywords. That's why I was trying to explore alternatives. Though if you side with CL'ish syntax for keywords as well, the debate is split about even :)
It is a good design objective in programming language design to not “reinvent the wheel”, especially when there is no actual benefit in the new construct or syntax. “Thou shalt not succumb to temptation” should be part of the language designer's mottos (including SRFI writers!). This has been a guiding principle in the design of Gambit, one example being the DSSSL syntax for keywords. Note that Gambit has the option to use the DSSSL syntax foo: and the CL syntax :foo, but the default is foo: .
Marc