Should we deprecate comma?
w0rp
devw0rp at gmail.com
Mon Mar 24 06:00:55 PDT 2014
On Monday, 24 March 2014 at 12:39:53 UTC, Marc Schütz wrote:
> On Monday, 24 March 2014 at 12:25:58 UTC, w0rp wrote:
>> Please kill the comma operator with fire. Is is just bad.
>>
>> On Monday, 24 March 2014 at 12:20:11 UTC, Marc Schütz wrote:
>>> Or, if you really want to distinguish them, this would work:
>>>
>>> (1,2) two-element tuple
>>> (1,) one-element tuple
>>> (1) simple expression
>>> (,) empty tuple
>>
>> I am a regular Python user, and I advise against using this
>> syntax for tuples. I have been bitten many times by something
>> which I thought was a tuple becoming an expression and
>> something I thought was a simple expression becoming a tuple.
>> It may be less of an issue in a static language, but it will
>> still be an issue. I don't have an alternative syntax to
>> propose.
>
> I'm not familiar with Python. What is the difference between a
> one-element tuple and an expression? Are Python tuples just
> arrays?
Consider the following.
>>> (1, 2)
(1, 2)
>>> (1)
1
>>> (1 * (3 * 4,))
(-1, )
>>> (1 * (3 - 4,) * 2)
(-1, -1)
>>> foo = lambda : 3
>>> (
... foo()
... )
3
>>> (
... foo(),
... )
(3, )
I see this kind of confusion happen often, and the convenient
syntax becomes a burden.
More information about the Digitalmars-d
mailing list