
On 2022-01-17 01:36, Steven D'Aprano wrote:
On Sun, Jan 16, 2022 at 04:23:47PM -0800, Brendan Barnwell wrote:
On 2022-01-16 16:11, Steven D'Aprano wrote:
Do they? How are they different? You have a start delimiter and an end delimiter.
[snip]
Hell, even if your argument is just "Nope, I just don't like the look of it!", I would respect that even if I disagree. Aesthetics are important, even when they are totally subjective.
If it helps, Julia supports this syntax for typed dicts:
Dict{keytype, valuetype}(key => value)
where the braces {keytype, valuetype} are optional. That's not a display syntax as such, or a prefix, but it is visually kinda similar.
Here are some similar syntax forms with prefixes:
* Dylan list displays: #(a, b, c) * Smalltalk drops the comma separators: #(a b c) * Scheme and Common Lisp: '(a b c)
and double delimiters:
* Pike: ({ a, b, c }) * Pike dicts: ([ a:b, c:d ])
Not that we could use any of those as-given.
How about doubling-up the braces: {{1, 2, 3}} and for frozen dicts: {{1: 'one', 2: 'two', 3: 'three'}} if needed? Those currently raise exception because sets and dics are unhashable. It might be confusing, though, if you try to nest them, putting a frozenset in a frozenset: {{ {{1, 2, 3}} }} or, without the extra spaces: {{{{1, 2, 3}}}} but how often would you do that?