Julia: Буквальные значения NaN в AST

Созданный на 31 мар. 2016  ·  3Комментарии  ·  Источник: JuliaLang/julia

Возможно, сравнение AST — не очень распространенная операция, но я наткнулся на следующее, что меня удивило. Я думаю, даже спорно, что == должен игнорировать тот факт, что NaN численно не равны сами себе, поскольку это не совсем численное сравнение.

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

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

Самый полезный комментарий

можно даже утверждать, что == следует игнорировать тот факт, что NaN численно не равны сами себе, поскольку это не совсем численное сравнение.

Литерал NaN не является значением NaN, да

Все 3 Комментарий

Похоже, нам нужен метод isequal для Expr, который рекурсивно вызывает isequal .

можно даже утверждать, что == следует игнорировать тот факт, что NaN численно не равны сами себе, поскольку это не совсем численное сравнение.

Литерал NaN не является значением NaN, да

Очень хороший момент. Реальное решение, вероятно, состоит в том, чтобы == в Exprs использовать isequal для сравнения элементов.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги