А вот ты уверен? Прости, я не могу писать угловыми скобками, пусть будут квардратные.
Option[f64] = (Some(f64), None)
poison (он же NaN) => None.
Теперь у нас есть код:
if min_x <= x <= max_x { ... }
Если у тебя Option, то у тебя None == None, и условие выполняется (если все три nan).
Предположим, в min_x оказалось nan (то есть poison). Инженерный подход - nan сам себе не равен. Так, чтобы если у нас есть такое выражение, то оно было бы false в случае nan на любой позиции.
no subject
А вот ты уверен? Прости, я не могу писать угловыми скобками, пусть будут квардратные.
Option[f64] = (Some(f64), None)
poison (он же NaN) => None.
Теперь у нас есть код:
if min_x <= x <= max_x {
...
}
Если у тебя Option, то у тебя None == None, и условие выполняется (если все три nan).
Предположим, в min_x оказалось nan (то есть poison). Инженерный подход - nan сам себе не равен. Так, чтобы если у нас есть такое выражение, то оно было бы false в случае nan на любой позиции.
Option эту проблему не решает.