Python-like Use of the Comma Expression

Timon Gehr timon.gehr at gmx.ch
Thu Aug 10 19:39:46 UTC 2023


On 8/10/23 17:47, Basile B. wrote:
> On Thursday, 10 August 2023 at 15:41:16 UTC, ryuukk_ wrote:
>> On Thursday, 10 August 2023 at 10:41:12 UTC, Basile B. wrote:
>>> On Thursday, 10 August 2023 at 02:28:08 UTC, Timon Gehr wrote:
>>>> On 8/8/23 18:47, Vijay Nayar wrote:
>>>>>
>>>>> **Question**: Would D benefit from using commas to define tuples 
>>>>> rather than triggering an error when the result of a 
>>>>> comma-expression is used? Right now, because the errors, the result 
>>>>> of a comma expression is a bit of "unused real estate" in the 
>>>>> language.
>>>>>
>>>>> The easy syntax for dealing with tuples of values is especially 
>>>>> useful in writing logic for machine-learning algorithms, and has 
>>>>> helped Python gain and hold a strong foothold in this area, but 
>>>>> where performance is needed, Python libraries like PyTorch turn to 
>>>>> C++. Perhaps this could be D instead.
>>>>
>>>> The answer is yes, though I don't think changing the precedence fits 
>>>> the D grammar.
>>>>
>>>> My DIP draft: 
>>>> https://github.com/tgehr/DIPs/blob/master/DIPs/DIP1xxx-tg.md
>>>>
>>>
>>> That link is for static-foreach, right one is 
>>> https://github.com/tgehr/DIPs/blob/tuple-syntax/DIPs/DIP1xxx-tg.md
>>
>> 6 years ago, wow..
>>
>> Builtin tuple has been on my wishlist for a long time, time flies too 
>> fast..
> 
> I'm reading the DIP with fresh eyes today, after having implemented 
> tuples for another language. One think I see now, as that Timon's DIP, 
> does not investigate, is that tuple deconstruction could use [in-situ 
> variable 
> declarations](https://gitlab.com/styx-lang/styx/-/releases/v0.10.15), 
> i.e something that's not especially made for tuples and that works as a 
> normal primary expression.

Well, I think that should be a separate proposal, but it's syntactically 
compatible. In any case, I would strongly prefer to be able to still do 
`auto (x,y) = t;` in addition to `(auto x, auto y) = t;`


More information about the Digitalmars-d mailing list