在Haskell中将函数更改为Maybe函数

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有关,但无法弄清楚如何.我打了一下周围有<*><$>,但没有取得任何进展.

任何帮助或指示正确的方向将不胜感激.谢谢!

bax*_*iwe 6

我认为你在寻找fmap,有类型Functor f => (a -> b) -> f a -> f b.如果要替换fMaybe(因为Maybe是一个仿函数),并把括号取消你在正确的地方(a -> b) -> (Maybe a -> Maybe b).你是在正确的方向(<$>),这只是一个别名fmap.

所以我们有makeItMaybe f x = fmap f x或者更简单地说makeItMaybe = fmap.