追加到 ADT 中的列表

Appending to lists inside ADT

我正尝试按如下方式追加到 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";

也许我在这里遗漏了什么?

谢谢!

试试这个作为解决方法:

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

它看起来像一个错误。

顺便说一下,我们将删除 + 的重载以添加元素和连接列表,并引入一个用于添加元素的特殊运算符。就像现在一样令人困惑。