Python-like Use of the Comma Expression

Basile B. b2.temp at gmx.com
Thu Aug 10 21:38:25 UTC 2023


On Thursday, 10 August 2023 at 19:39:46 UTC, Timon Gehr wrote:
> 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;`

whe have var decl syntax for `if`, since recently for `while` 
too... It's pretty clear that "in situ" variable decls are 
required...unless D continues on making special cases.


More information about the Digitalmars-d mailing list