将函数抽象到函子列表上的抽象方式是什么?

我了解基本的用法

λ: [(+2),(*2)] <*> [10,20]
[12,22,20,40]

但是我该如何处理[(+2),(*2)] ???? [Just 10, Just 20]

我能想到的所有方法似乎都很复杂。

例如:
λ: (<$>) <$> [(+2),(*2)]  <*> [Just 10, Just 20]
[Just 12,Just 22,Just 20,Just 40]

最佳答案

您可以使用 Data.Functor.Compose 将嵌套的函子/应用程序视为单个函子/应用程序:

ghci> import Data.Functor.Compose
ghci> getCompose (Compose [pure (+2), pure (*2)] <*> Compose [Just 10, Just 20])
[Just 12,Just 22,Just 20,Just 40]

但是在这种情况下,(ComposegetCompose)新型噪声可能不值得。

关于haskell - Haskell:嵌套仿函数上的fmap,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37374570/

10-12 19:19