将函数抽象到函子列表上的抽象方式是什么?
我了解基本的用法
λ: [(+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]
但是在这种情况下,(
Compose
,getCompose
)新型噪声可能不值得。关于haskell - Haskell:嵌套仿函数上的fmap,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37374570/