On Thursday, 20 August 2015 at 20:39:01 UTC, Timon Gehr wrote:
On 08/20/2015 10:26 PM, David Nadlinger wrote:
On Thursday, 20 August 2015 at 16:45:18 UTC, Márcio Martins
wrote:
Having 2 empty strings evaluate differently is very
unintuitive and
error-prone, in my opinion.
It's even worse: http://dpaste.dzfl.pl/ba3376feca8e
The arrays are equal, but their Boolean value is not.
I don't get how Andrei can reconcile this with his "D avoids
unforced
errors" stance.
— David
By denying that it is an error and by playing down its
significance, IIRC.
Same about [] is null, [1][1..1] is null, but {auto a=[1];
return a[1..1];}() !is null and related cases.
Note that even if you put that asside, D makes the difference
between equality and identity. null check is an identity check,
while truthiness is a value check. The semantic is not coherent.