gpt4 book ai didi

haskell - (,) 是如何在内部定义的?

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

重新定义函数很简单

(,) :: a -> b -> (a,b)
(,) a b = (a,b)

奇怪的(对我来说)是这个函数是为任意长度的元组定义的。因此,例如,实际上有一个函数:
(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) :: a -> b -> c -> ... -> (a,b,c,...)

这是怎么做到的?为什么不为元组上的所有标准函数完成它,比如 zip?

胡格尔给我 no results ,而且我不明白 Haskell 模板是如何做到这一点的,所以我认为它一定是编译器内部的某种魔法。但这对我来说似乎很不合时宜。

最佳答案

How is this done?



编译器支持。 Haskell 语言报告任务 (,)至少支持 15 个参数(6.1.4),但 GHC 走得更远,生成的参数更多(上次我们对此进行测试,它可以处理数百甚至数千个)。 zip并且必须为最多 7 个元组定义其他元组函数。我不知道 GHC 是否会产生更大的数量。

关于haskell - (,) 是如何在内部定义的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11909545/

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