我是Haskell的初学者,我试图这样做exercise。
所以我需要实现Functor Parser才能实现Applicative Parser。
但我仍然坚持如何实现Functor,即使使用"第一个功能提示" :(。实际上,我无法通过使用" fmap f Parser a"来弄清楚我们想要实现的目标。
有人可以解释一下吗?
答案 0 :(得分:2)
我们需要定义
fmap :: (a -> b) -> Parser a -> Parser b
像往常一样,我们从模式匹配开始:
fmap f (Parser p) = _
结果必须是解析器,所以让我们应用构造函数:
fmap f (Parser p) = Parser _
现在我们需要洞中的一个函数String -> Maybe (b, String)
。所以,让我们做一个:
fmap f (Parser p) = Parser $ \s -> _
我会让你尝试完成此任务。