附加到ADT内的列表

时间:2015-03-30 20:22:17

标签: rascal

我试图按如下方式附加到ADT内的列表中:

data MyADT = myadt(list[str] s); 
m = myadt([]);
m.s += "test";

导致错误:

|prompt:///|(0,3,<1,0>,<1,3>): Expected list[str], but got str
?[Advice](http://tutor.rascal-mpl.org/Errors/Static/UnexpectedType/UnexpectedType.html)

这似乎应该有效,因为这有效:

x = [];
x += "test";

也许我在这里错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试将其作为解决方法:

rascal>m.s += ["test"];
MyADT: myadt(["test"])

它看起来像一个bug。

顺便说一下,我们将删除+的重载以添加两个元素并连接列表并引入一个特殊的运算符来添加元素。它现在很混乱。