重新定义这个功能是微不足道的
(,) :: a -> b -> (a,b)
(,) a b = (a,b)
Run Code Online (Sandbox Code Playgroud)
奇怪的(对我而言)是这个函数是为任意长度的元组定义的.所以,例如,实际上有一个功能:
(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) :: a -> b -> c -> ... -> (a,b,c,...)
Run Code Online (Sandbox Code Playgroud)
这是怎么做到的?为什么不对像元组的所有标准函数一样,比如zip?
Hoogle 没有给我任何结果,我也看不出模板Haskell如何做到这一点,所以我认为它必须是编译器内部的一些魔力.但这对我来说似乎非常不好.
这是怎么做到的?
编译器支持.哈斯克尔语言报告任务(,)将支持至少达15个参数(6.1.4),但GHC去一点,并生成他们多很多(我们测试过这最后的时光,它可以处理数百甚至数千) .zip必须为最多7个元组定义其他元组函数.我不知道GHC是否会产生更大量的GHC.
| 归档时间: |
|
| 查看次数: |
287 次 |
| 最近记录: |