|
Further issues
Wolfgang Corcoran-Mathe
(20 Jun 2026 17:55 UTC)
|
|
Re: Further issues and New Portable Implementation
Andrew Tropin
(23 Jun 2026 12:08 UTC)
|
|
Re: Further issues and New Portable Implementation
Wolfgang Corcoran-Mathe
(23 Jun 2026 17:22 UTC)
|
|
Re: Further issues and New Portable Implementation
Wolfgang Corcoran-Mathe
(23 Jun 2026 20:00 UTC)
|
|
Re: Further issues and New Portable Implementation
John Cowan
(24 Jun 2026 01:42 UTC)
|
|
Re: Further issues and New Portable Implementation
Andrew Tropin
(24 Jun 2026 04:52 UTC)
|
|
Re: Further issues and New Portable Implementation
Andrew Tropin
(24 Jun 2026 04:28 UTC)
|
|
Re: Further issues and New Portable Implementation
Andrew Tropin
(24 Jun 2026 04:26 UTC)
|
|
Re: Further issues and New Portable Implementation
John Cowan
(24 Jun 2026 05:30 UTC)
|
|
Re: Further issues and New Portable Implementation Andrew Tropin (28 Jun 2026 06:25 UTC)
|
|
Re: Further issues and New Portable Implementation
John Cowan
(28 Jun 2026 10:22 UTC)
|
|
Re: Further issues and New Portable Implementation
Andrew Tropin
(29 Jun 2026 01:37 UTC)
|
|
Re: Further issues and New Portable Implementation
Wolfgang Corcoran-Mathe
(24 Jun 2026 15:56 UTC)
|
|
Re: Further issues and New Portable Implementation
Andrew Tropin
(28 Jun 2026 06:11 UTC)
|
On 2026-06-24 01:30, John Cowan wrote:
> On Wed, Jun 24, 2026, 12:26 AM Andrew Tropin <xxxxxx@trop.in> wrote:
>
>>
>> 2. Yeah, we could go further and remove quoting, but I still prefer
>> `'metadata` over `metadata` as it makes it clearer that this is a symbol
>> and this thing won't be evaluated. It's one extra character to type,
>> but so explicit to read with no extra cognitive load.
>>
>
> "Metadata" is functioning as a syntax keyword, though, and it's a strong
> convention not to quote syntax keywords. We do not write
>
> (cond
> ((this) (that))
> ((foo) (bar))
> ('else (baz)))
>
> although we could define "cond" to require this, and "else" is certainly
> not a variable. In addition, making "metadata" explicitly a syntax keyword
> makes it participate smoothly in the macro system. The extra cognitive load
> consists of wondering why the unnecessary ' is present.
True. The small difference here is that metadata is not wrapped into
parethesis, so the cond analogy is not completely matches.
Anyway, I don't have a strong stance here, but still my intuiton tells
that
(test ("descr" ctx)
'metadata
'((a . b))
...)
or more verbose
(test ("descr" ctx)
(metadata
'((a . b)))
...)
Looks more explicit and obvious than
(test ("descr" ctx)
metadata
'((a . b))
...)
At least for people with general CS background, who are not 30 years
into Scheme.
Feel free to persuade which syntax and look we need here.
>
>>
>> context is a plain alist (and alists are immutable in most Schemes?).
>>
>
> Alists are, like most lists, mutable in fact but immutable by unenforced
> convention. (Property lists are one if the few kinds of lists that are
> conventionally mutated.) Since lists are not a disjoint type and pairs are
> mutable, this is the same in all Schemes -- well, except Racket.
Thanks for the answer!
So let's define an overal shape of context as something like:
"We suggest context to be a kinda immutable alist with possible
'sideffectful values'. We suggested and warned you, but you are free to
shoot legs as you wish! :)"
--
Best regards,
Andrew Tropin