需要将Parser转换为Functor

时间:2016-10-05 07:57:49

标签: haskell

我是Haskell的初学者,我试图这样做exercise

所以我需要实现Functor Parser才能实现Applicative Parser。

但我仍然坚持如何实现Functor,即使使用"第一个功能提示" :(。实际上,我无法通过使用" fmap f Parser a"来弄清楚我们想要实现的目标。

有人可以解释一下吗?

1 个答案:

答案 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 -> _

我会让你尝试完成此任务。