gpt4 book ai didi

Haskell-(类型声明)什么是 "a"?

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

这可能是一个非常基本的问题,但是,尽管如此,它似乎并未涵盖在 SO 中。

我最近开始使用 Haskell,直到现在类型声明主要包括以下内容:

Int
Bool
Float
etc, etc

现在我进入列表,我看到使用 a 的类型声明,例如在以下遍历关联列表的函数中:
contains :: Int -> [(Int,a)] -> [a]
contains x list = [values | (key,values)<-list, x==key]

有人可以解释一下这是什么 a是,它是如何工作的?从观察来看,它似乎代表了每一种类型。这是否意味着我可以输入任何类型的任何列表作为参数?

最佳答案

是的,你是对的,它代表“任何类型”——限制是所有 a给定类型签名中的 s 必须解析为相同的类型。所以你可以输入任何类型的列表,但是当你使用 contains 时要在列表中查找值,您查找的值必须与列表元素的类型相同——这当然是有道理的。

关于Haskell-(类型声明)什么是 "a"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28226559/

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