【发布时间】:2018-01-21 12:49:51
【问题描述】:
我正在尝试创建一个元组,它可以选择具有相同类型的元组列表。
alias MyTuple = tuple[str name, list[MyTuple] children];
代码失败,因为此时 MyTuple 未知。
这可能吗,还是我们需要使用 Node 或 Construct 来获得这个结构?
【问题讨论】:
标签: rascal
我正在尝试创建一个元组,它可以选择具有相同类型的元组列表。
alias MyTuple = tuple[str name, list[MyTuple] children];
代码失败,因为此时 MyTuple 未知。
这可能吗,还是我们需要使用 Node 或 Construct 来获得这个结构?
【问题讨论】:
标签: rascal
您似乎正在尝试定义递归数据类型。和你写的类似的是这样的:
data MyTuple = myTuple(str name, list[MyTuple] children);
使用它,您可以构造MyTuple 类型的任意嵌套值。
别名只是另一种类型的简写符号,不能用于递归定义,因为您引用的类型必须事先定义。
【讨论】: