gpt4 book ai didi

haskell - Haskell 中的 const (++) 类型

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

我试图理解 Haskell 中表达式 const (++) 的类型。我知道 const(++) 的各个类型,并且我知道您可以省略参数以返回部分应用的函数。

如果我输入 :t const (++) 我会得到 const (++)::b -> [a] -> [a] -> [a]。我认为 (++) 需要两个列表(但是我知道 Haskell 中的所有函数都是实际上只接受一个参数的柯里化(Currying)函数)并返回一个列表。然后这个列表是 const 函数的第一个参数,它等待另一个参数。所以,我认为类型是 const (++)::[a] -> [a] -> b -> [a].

但例如:const (++) 1 "hello""you" 返回 "helloyou"const 操作返回的东西怎么不是第一个参数,根据 const 的定义是 const x _ = x?在我的思考过程中,我哪里错了?

最佳答案

How come the thing that is returned from the const operation is not the first argument

是的。 const 的第一个参数是 (++)。所以const (++) 1运算的结果其实就是(++),也就是第一个参数。所以 const (++) 1 就是 (++),意思是 const (++) 1 "hello""you" 就是 >(++) "hello""you" 那就是"helloyou"

关于haskell - Haskell 中的 const (++) 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44262986/

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