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

标签 ceylon

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

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

最佳答案

不,不幸的是这是不可能的,原因是元组类型在类型系统中表示为 Tuple 实例化的链接列表,但类型系统无法表达循环或递归在函数的签名内。 (并且具有循环/递归几乎肯定会使类型系统变得不可判定。)

原则上,我们将来解决这个问题的一种方法是拥有一个内置原语 type function计算元组类型的最后一个元素类型。

“原始”类型函数是指不能用语言本身编写的类型函数,而是由编译器作为内置函数提供。

Ceylon 目前没有任何此类原始类型函数,但还有一些其他类似的问题可以通过这种方式解决。

关于ceylon - 没有最后一个元素且类型正确的元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39557442/

相关文章:

maven - 如何在 ceylon 模块描述符中应用 'maven:' 前缀

java - 如何从终端运行 Ceylon Eclipse 项目?

collections - Ceylon 中 List、Tuple、Sequence、Sequential、Iterable、Array 等的区别

interface - 实现内部非静态接口(interface)

ceylon - 迭代枚举类实例

sequence - 你如何在 Ceylon 中展平一个 Sequence of Sequences?

java - Java的包装类和Ceylon基本类型之间的映射

ceylon - 为什么要在 Ceylon 中创建 Iterable 而不是 Sequence?

ceylon - 实现 Sumable 时遇到问题