applyTwice是一个着名的Haskell成语吗?

时间:2014-11-15 23:57:16

标签: haskell higher-order-functions

这是一个众所周知的成语吗?

applyTwice :: (a -> b -> c) -> (d -> a) -> (d -> b) -> (d -> c)
applyTwice g f1 f2 p = g (f1 p) (f2 p)

这是一个典型的用途:

applyTwice someFunction head tail $ this $ that $ otherThing

在这种情况下,this $ that $ otherThing会返回一个列表,我想将两者放在该列表的头部和尾部,然后将两端提供给someFunction

applyTwice是一个标准习语,还是有一些更自然的方法可以同时获取复杂计算结果的头部和尾部?仅使用where标准方法来执行此操作吗?

1 个答案:

答案 0 :(得分:5)

不仅仅是liftM2吗?