当前位置:  开发笔记 > 编程语言 > 正文

Haskell:验证构造函数是否为Monad

如何解决《Haskell:验证构造函数是否为Monad》经验,为你挑选了1个好方法。

我有一个类型

data Maybe a = Nothing | Just a

我需要验证以下类型构造函数Maybe是否为Monad

instance Monad Maybe where
        return x = Just x
        Nothing >>= f = Just (f (Nothing))
        (Just x) >>= f = f x

请给我一些指示如何做上述任务.

谢谢



1> chi..:

为此,您必须验证monad法律.它们有几种(等效的)形式,最接近Haskell monads

x >>= return     =  x
return x >>= f   =  f x
(x >>= f) >>= g  =  x >>= (\y -> f y >>= g)

从第一次启动并应用定义为>>=return.您可能希望通过案例进行:要么xNothing或者是Just a对于一些价值a...

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有