gpt4 book ai didi

haskell - Haskell 中的 const 函数声明

转载 作者:行者123 更新时间:2023-12-02 13:46:40 26 4
gpt4 key购买 nike

我对 const 函数的一个特定示例感到困惑。因此类型声明 const::a -> b->a 声明该函数接受两个类型为 ab 的参数并返回 a输入a。例如:

const 5 3 => 5
const 1 2 => 1

根据声明,这是有道理的。然而,我遇到了这个具体的例子:

const (1+) 5 3 => 4

这让我质疑我对函数声明的理解。我知道这个函数只需要两个参数,因为我尝试过:

const 1 5 3 

现在这让我放心,它只需要 2 个参数。那么这是如何运作的呢? (1+) 不是参数吗?如果不是,那是什么?

const (1+) 5 3 => 4

最佳答案

I know this function only takes two parameters (…)

Haskell 中的每个函数都采用一个 参数。事实上,如果你写:

 const 5  1

那么这是缩写:

(const 5) 1

类型签名 const::a -> b -> aconst::a -> (b -> a) 的更紧凑形式。

因此,const 5 将创建一个函数,该函数忽略参数(此处为 1)并返回给定 5 的值。

现在对于 const (1+) 5 3 因此意味着我们写道:

((const (1+)) 5) 3

const (1+) 将构造一个忽略参数的函数,并返回 (1+),因此 const (1+) 5(1+)。因此我们计算:

(1+) 3

这是4

关于haskell - Haskell 中的 const 函数声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60534635/

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