gpt4 book ai didi

haskell - Haskell的bind函数是什么类型的?

转载 作者:行者123 更新时间:2023-12-02 13:32:20 24 4
gpt4 key购买 nike

这里有一个非常流行的 monad 解释:

http://blog.sigfpe.com/2007/04/trivial-monad.html

我得到了除了部分之外的所有内容:

bind :: (a -> W b) -> (W a -> W b)
bind f (W x) = f x

我有 Haskell 的基本知识(已经很长时间没有使用它了),但是这个签名似乎不对。

我安装了 GHC 并检查了它的想法 - 结果它认为我做了什么,即:

:t bind
bind :: (t1 -> t) -> W t1 -> t

我错过了什么?

最佳答案

Haskell 的类型推断器始终考虑最通用的签名。因为在 bind 的实现中,您没有执行任何将参数 f 给出为比从任何类型到 any 其他类型(不是特定的 W b),即具有签名 a -> b (或 t1 -> t,因为推断者有写),当然就这样了。

换句话说,签名 (a -> b) -> W a -> b(a -> W b) -> (W a -> W b).

关于haskell - Haskell的bind函数是什么类型的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20513886/

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