Mungkin membandingkan AST bukanlah operasi yang sangat umum, tetapi saya menemukan hal berikut yang menurut saya mengejutkan. Saya pikir bahkan dapat diperdebatkan bahwa ==
harus mengabaikan fakta bahwa NaN secara numerik tidak sama dengan dirinya sendiri karena itu bukan perbandingan numerik yang sebenarnya.
julia> :(f($NaN)) == :(f($NaN))
false
julia> isequal(:(f($NaN)), :(f($NaN)))
false
Sepertinya kita membutuhkan metode isequal
untuk Expr yang memanggil isequal
secara rekursif.
bahkan dapat diperdebatkan bahwa == harus mengabaikan fakta bahwa NaN secara numerik tidak sama dengan dirinya sendiri karena itu bukan perbandingan numerik yang sebenarnya.
NaN literal bukan nilai NaN, ya
Poin yang sangat bagus. Solusi sebenarnya mungkin untuk ==
pada Exprs menggunakan isequal
untuk membandingkan elemen.
Komentar yang paling membantu
NaN literal bukan nilai NaN, ya