gpt4 book ai didi

haskell - Haskell 类型中波浪号的含义(类型相等)

转载 作者:行者123 更新时间:2023-12-04 00:52:17 25 4
gpt4 key购买 nike

我一直在搞乱fix函数,我碰巧遇到了这个:

λ let fix f = let x = f x in x
λ fix (+)

<interactive>:15:5:
Occurs check: cannot construct the infinite type: t ~ t -> t
Expected type: t -> t
Actual type: t -> t -> t
Relevant bindings include it :: t (bound at <interactive>:15:1)
In the first argument of ‘fix’, namely ‘(+)’
In the expression: fix (+)

我完全知道为什么会发生这个错误,但我注意到上面有一个有趣的类型签名: t ~ t -> t .这种类型是什么意思?波浪号在haskell中的类型签名中是什么意思?它们在哪里使用?

最佳答案

该错误中的波浪号 ( ~ ) 表示类型相等。它告诉你它不能推断t成为 t -> t .该符号也用于 irrefutable patterns ,但这是完全不同的上下文。

关于haskell - Haskell 类型中波浪号的含义(类型相等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27667628/

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