map4
便利そうに見えるという理由だけで、このような関数を書きました。
map2 :: Functor f => (i -> a) -> (i -> b) -> f i -> f (a,b)
map2 f1 f2 = fmap $ \i -> (f1 i, f2 i)
先に進む前にmap8
、標準モジュールに似たようなものがあるかどうか尋ねたいと思いました。Hayoo は、上記の署名を持つ関数を知らないようです。
注:Control.Arrow.&&&
上記を次のように削減することはすでにわかっています。
map2 f1 f2 = fmap (f1 &&& f2)
しかし、ファンアウトが 2 つを超える場合、同様の機能はないようです。