为什么Scala库只定义Tuple22以下的元组?

为什么Scala库只定义Tuple22以下的元组?,scala,Scala,我很好奇是否有人知道为什么Scala库的tuple类型停在22? 神秘的数字22有特殊的隐藏意义吗? 这是一个内部笑话吗?我认为这与实现静态类型系统时遇到的困难有关,同时具有可变(任意参数)函数。我相信apply可以用Scala编写(虽然不是用Haskell编写的,至少不优雅)。这个问题并不新鲜,请参阅或 既然没有“技术”解释,他们只好停在某个地方。案例类限制在2.11中被取消了限制22是dotty(Scala 3)的功能之一,它现在允许任意算术元组: 对…的限制为22。。。元组类型中的最大字段

我很好奇是否有人知道为什么Scala库的tuple类型停在
22

神秘的数字
22
有特殊的隐藏意义吗?

这是一个内部笑话吗?

我认为这与实现静态类型系统时遇到的困难有关,同时具有可变(任意参数)函数。我相信
apply
可以用Scala编写(虽然不是用Haskell编写的,至少不优雅)。

这个问题并不新鲜,请参阅或


既然没有“技术”解释,他们只好停在某个地方。

案例类限制在2.11中被取消了

限制22是dotty(Scala 3)的功能之一,它现在允许任意算术元组:

对…的限制为22。。。元组类型中的最大字段数已确定 下降。。。Tuple22之外的元组将被删除为一个新的trait
scala.tuplexl

,

输出

class scala.TupleXXL
25

有关更多示例,请参见

他们认为23有点太多了……)与函数的一致性为22。从0到22的算术是23个不同的函数,我们都知道这意味着什么:Scala 2.11.8中的可能重复:
错误:元组中的元素太多:24,允许:22(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24)^
class scala.TupleXXL
25