gpt4 book ai didi

haskell - 为什么什么都没有>> Haskell 中只有 3 什么都不是?

转载 作者:行者123 更新时间:2023-12-04 09:05:18 25 4
gpt4 key购买 nike

>> 的签名Haskell 中的函数是这样的:

(>>) :: m a -> m b -> m b

默认实现是:
x >> y = x >>= \_ -> y

据我了解, >>无论左侧参数的值如何,函数始终返回其右侧参数。 lambda 甚至不关心左侧参数 (x) 的值。那么,为什么是 Nothing >> Just 3等于 Nothing ?它不应该只是返回 Just 3 ,因为那是右边参数的值?

我知道任何 Just值,将返回 Nothing ,当与 Nothing 关联时, 但在这种情况下 Nothing甚至没有被 lambda 捕获。我错过了什么?

奖金问题, >>=称为绑定(bind)。什么是 >>叫?

谢谢。

最佳答案

因为绑定(bind)甚至不关心 lambda 的值是什么!

Just x  >>= f = f x
Nothing >>= _ = Nothing

注意 (Nothing >>=)不评估它的第二个参数。

关于haskell - 为什么什么都没有>> Haskell 中只有 3 什么都不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23140385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com