Re:Swift and the Legacy of Functional Programming
by masklinn on Tuesday November 22, 2016 @03:52AM
(#13012698)
In Haskell you'd use `mapMaybe :: (a -> Maybe b) -> [a] -> [b]`[0], it's a combined map+filter+map specialised for Maybe (option types). Rust has Iterator::filter_map[1] which does more or less the same thing.
[0] http://hackage.haskell.org/package/base-4.9.0.0/docs/Data-Ma...
[1] https://doc.rust-lang.org/std/iter/trait.Iterator.html#metho...
I think the right way to do it is with a fold.