Edited at

Rust で fmap

型の中に関数を適応させます。

ああこれってHaskellのfmapに似てる〜ってちょっと感動したのでメモです。

堅牢さと簡潔さが両方求めるような状況下で役立ちそうです。


Haskell


コード

main = do 

print (fmap (+7) (Just 10))
print (fmap (+7) Nothing)


結果

Just 17

Nothing


Rust


コード

fn main() {

println!("{:?}", Some(10).map(|v| v+7));
println!("{:?}", None::<usize>.map(|v| v+7));
}


結果

Some(17)

None


参考

AtCoder abc118 arzkさんの回答