Julia: Wörtliche NaNs in ASTs

Erstellt am 31. März 2016  ·  3Kommentare  ·  Quelle: JuliaLang/julia

Vielleicht ist das Vergleichen von ASTs keine sehr häufige Operation, aber ich bin auf Folgendes gestoßen, das ich überraschend fand. Ich denke, es ist sogar vertretbar, dass == die Tatsache ignorieren sollte, dass NaNs numerisch nicht gleich sind, da es sich nicht wirklich um einen numerischen Vergleich handelt.

julia> :(f($NaN)) == :(f($NaN))
false

julia> isequal(:(f($NaN)), :(f($NaN)))
false

Hilfreichster Kommentar

Es kann sogar argumentiert werden, dass == die Tatsache ignorieren sollte, dass NaNs numerisch nicht gleich sind, da es sich nicht wirklich um einen numerischen Vergleich handelt.

NaN-Literal ist kein NaN-Wert, ja

Alle 3 Kommentare

Es sieht so aus, als bräuchten wir eine isequal -Methode für Expr, die isequal rekursiv aufruft.

Es kann sogar argumentiert werden, dass == die Tatsache ignorieren sollte, dass NaNs numerisch nicht gleich sind, da es sich nicht wirklich um einen numerischen Vergleich handelt.

NaN-Literal ist kein NaN-Wert, ja

Sehr guter Punkt. Die wirkliche Lösung besteht wahrscheinlich darin, dass == auf Exprs isequal verwendet, um Elemente zu vergleichen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

StefanKarpinski picture StefanKarpinski  ·  3Kommentare

wilburtownsend picture wilburtownsend  ·  3Kommentare

thofma picture thofma  ·  3Kommentare

manor picture manor  ·  3Kommentare

m-j-w picture m-j-w  ·  3Kommentare