Ros*_*nal 1 monads haskell function
是否有可能编写一个函数,它接受一个函数(Something -> Something),并返回它,但是有一个类型(Maybe Something -> Maybe Something)?
例如:
f :: Point -> Point
f x = [some code goes here]
makeItMaybe :: (Point -> Point) -> (Maybe Point -> Maybe Point)
makeItMaybe x = ???
Run Code Online (Sandbox Code Playgroud)
我知道它与Monads和Applicatives有关,但无法弄清楚如何.我打了一下周围有<*>和<$>,但没有取得任何进展.
任何帮助或指示正确的方向将不胜感激.谢谢!
我认为你在寻找fmap,有类型Functor f => (a -> b) -> f a -> f b.如果要替换f的Maybe(因为Maybe是一个仿函数),并把括号取消你在正确的地方(a -> b) -> (Maybe a -> Maybe b).你是在正确的方向(<$>),这只是一个别名fmap.
所以我们有makeItMaybe f x = fmap f x或者更简单地说makeItMaybe = fmap.
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |