Ceylon 没有最后一个元素且类型正确的元组

Ceylon 没有最后一个元素且类型正确的元组,ceylon,Ceylon,是否可以以类型安全的方式删除元组中的最后一个元素以实现任意的算术性? 我想要这样的东西: [A,B,C] abc = [a,b,c]; [A,B] ab = removeLast(abc); 不,不幸的是这是不可能的,原因是元组类型在类型系统中表示为元组实例化的链表,但类型系统不能在函数签名中表示循环或递归。拥有循环/递归几乎肯定会使类型系统不可判定 原则上,我们将来可以解决这个问题的一种方法是使用一个内置原语来计算元组类型的最后一个元素类型 所谓基元类型函数,我指的是不能用语言本身编写的类型

是否可以以类型安全的方式删除元组中的最后一个元素以实现任意的算术性? 我想要这样的东西:

[A,B,C] abc = [a,b,c];
[A,B] ab = removeLast(abc);

不,不幸的是这是不可能的,原因是元组类型在类型系统中表示为元组实例化的链表,但类型系统不能在函数签名中表示循环或递归。拥有循环/递归几乎肯定会使类型系统不可判定

原则上,我们将来可以解决这个问题的一种方法是使用一个内置原语来计算元组类型的最后一个元素类型

所谓基元类型函数,我指的是不能用语言本身编写的类型函数,而是由编译器作为内置函数提供的


Ceylon目前没有这些类型的基元类型函数,但是还有一些类似的问题可以通过这种方式解决。

我所了解的问题,不是关于最后一个元素的类型,而是关于最后一个元素以外的所有元素。虽然我想这没什么变化。