Chapel 以逗号分隔打印字符串域值

Chapel 以逗号分隔打印字符串域值,chapel,Chapel,我想用逗号输出一个域。在Python中,我可以使用字符串.join()方法,由列表.sort()-ed产品提供,但在Chapel中,我没有得到正确的结果 var names = { "anze kopitar", "tyler toffoli", "drew doughty", "jeff carter", "tanner pearson" }; wri

我想用逗号输出一个域。在Python中,我可以使用
字符串
.join()
方法,由
列表
.sort()
-ed产品提供,但在Chapel中,我没有得到正确的结果

var names = { "anze kopitar",
              "tyler toffoli",
              "drew doughty",
              "jeff carter",
              "tanner pearson"
               };

writeln( names );
writeln( names.sorted() );
writeln( ",".join( names ) );
writeln( ",".join( names.sorted() ) );
我想读最后一行

anze kopitar,drew doughty,jeff carter,tanner pearson,tyler toffoli

在Chapel 1.16中,
string.join
仅支持变量、元组和数组作为参数。目前,在加入之前,您需要将域转换为以下类型之一:

var dom = {"apple", "orange", "carrot"};
var A = dom.sorted(); // 'A' is an array
const s = ",".join(A);
writeln(s);
输出为:

apple,carrot,orange

将非DUP方法“内联”到Chapel语言中有多复杂?鉴于Brian通常不与少数曲棍球运动员合作,而是与巨大的数据规模合作,“公正”——当前语法约束驱动的复制在所有情况下都是不可能的,因为[空间]硬限制不允许任何类似的约束解决方法。多亏添加了更多的光。您是否想知道添加一个方法/函数来删除重复项有多困难?我认为这取决于什么是“某物”。如果它是一个数组,那么我想可以执行就地排序,然后遍历数组寻找相邻的重复项。我不熟悉这个问题的最佳算法,但我不知道有什么特别的东西会使事情变得过于复杂。没有,先生。关键是要完全避免愚蠢的DUP步骤
var a=dom.sorted();//'A'是一个数组
,它可以让语言“动态”地转换非重复数据,而不是静态地复制它们在[SPACE]中的表示,以便能够移动到下一步进行处理并最终分配
aStringSEPARATOR.join(A)。对我来说,这听起来相当棘手。什么样的模式会触发这种非重复行为?它将在什么类型上运行?让编译器自动插入这种操作似乎很复杂,希望将来不再需要。我认为更好的行为应该是让
join
接受任何iterable的东西,这样就可以编写
sep.join(dom.sorted())
。是的,这正是我在试图询问扩展Chapel语言来完成这项工作(主要是避免双重分配
[空间]的成本)时试图表述的
-在您当前的回答中提出的临时解决方案中存在封装外形)。