我将如何继续证明这两个函数的输入是否正确?我对这个问题有点失落。 let rec reduce f lst u =
match lst with
| [] -> u
| (h::t) -> f h (reduce f t u)
let rec forall2 p l1 l2 =
match (l1,l2) with
| ([],[]) -> t
所以我掀起了一个自定义错误monad,我想知道如何去证明它的一些monad法则。如果有人愿意花时间帮助我,那将是非常感谢。谢谢! 这里是我的代码: data Error a = Ok a | Error String
instance Monad Error where
return = Ok
(>>=) = bindError
instance Show a => S