现在 Haskell 库中可能有一些东西可以做我想做的事。我已经够菜鸟了,不知道更好,我正在尝试使用我知道的工具编写自定义地图功能。类型签名需要是
myMap :: (Monad m) => (a -> b) -> [m a] -> [m b]
where在应用于每个 Monad 中的每个值myMap f as
后返回一个列表。f
as
我的第一次尝试是
myMap f = map (\x x >>= f)
然而,这有一个类型签名
myMap :: (Monad m) => (a -> m b) -> [m a] -> [m b]
这太接近我需要的了,我可以尖叫。现在我需要一些关于如何从这里继续的提示。我真的希望它像库函数一样简单,但我愿意编写自己的短函数来代替它。
相关问题: