Dicebot on leaving D: It is anarchy driven development in all its glory.

Laurent Tréguier laurent.treguier.sink at gmail.com
Thu Sep 6 14:40:31 UTC 2018


On Thursday, 6 September 2018 at 14:17:28 UTC, aliak wrote:
> Hehe, it's already a bit laughable that correctness is not 
> preferred.
>
> // Swift
> let a = "á"
> let b = "á"
> let c = "\u{200B}" // zero width space
> let x = a + c + a
> let y = b + c + b
>
> print(a.count) // 1
> print(b.count) // 1
> print(x.count) // 3
> print(y.count) // 3
>
> print(a == b) // true
> print("ááááááá".range(of: "á") != nil) // true
>
> // D
> auto a = "á";
> auto b = "á";
> auto c = "\u200B";
> auto x = a ~ c ~ a;
> auto y = b ~ c ~ b;
>
> writeln(a.length); // 2 wtf
> writeln(b.length); // 3 wtf
> writeln(x.length); // 7 wtf
> writeln(y.length); // 9 wtf
>
> writeln(a == b); // false wtf
> writeln("ááááááá".canFind("á")); // false wtf

writeln(cast(ubyte[]) a); // [195, 161]
writeln(cast(ubyte[]) b); // [97, 204, 129]

At least for equality, it doesn't seem far fetched to me that 
both are not considered equal if they are not the same.


More information about the Digitalmars-d mailing list