gpt4 book ai didi

function - (a -> a) 和 a -> a 之间的区别

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

我注意到(尽管有人告诉我 (a -> a)a -> a 意思相同),但当我使用 (a -> a) 时会收到错误消息。 .我应该只使用 (a -> a)在类型中使用括号时? (即 (5 + 3) 而不是 5 + 3 )?只是不太确定何时需要

最佳答案

(a -> a)a -> a单独是一样的,

ff :: (a -> a)   -- this compiles
ff = id

gg :: a -> a
gg = id

h :: a -> a -> Bool
h _ _ = True

i = h ff gg -- this compiles => ff & gg are of the same type.

但与更多类型结合时会有所不同,例如:
 a -> a  -> b
(a -> a) -> b

这是因为 ->是右结合的,所以 a -> a -> b实际上意味着 a -> (a -> b) (取一个 a 并返回一个函数),这与 (a -> a) -> b 不同(获取一个函数并返回一个 b )。

这就像 (1+2)*3不同于 1+2*3 .

关于function - (a -> a) 和 a -> a 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5875896/

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