Maybe/Option
code:maybe.hs
data Maybe a = Just a | Nothing
code:option.rs
enum Option<T> {
Some(T),
None,
}
型引数を1つ取る型で、型引数の値があるか、もしくはないということを表す
モナドであり、bindは受け取った関数の返り値がJustだった場合それを返し、NothingだったらNothing もとの値に加えて無効を表す値を1つ(Nothing)扱うという性質はnull安全の話にも現れてくる
Maybeを返す関数は失敗するかもしれない関数である
たとえば整数の除算は理想論としては除数に0が来るときNothingを返すべき
浮動小数点数ではIEEE754でInfinityやNaNを返すようになっている