我确信 Rascal 已经内置了对 Stack 的支持(例如,通过堆栈推送/弹出的表达式 eval),但我找不到任何东西。
所以我现在用这个。但是有更好的方法吗?
list stack = [];
流行音乐:
value = stack[size(stack)-1];
stack = stack - value;
推
stack = stack + value
我确信 Rascal 已经内置了对 Stack 的支持(例如,通过堆栈推送/弹出的表达式 eval),但我找不到任何东西。
所以我现在用这个。但是有更好的方法吗?
list stack = [];
流行音乐:
value = stack[size(stack)-1];
stack = stack - value;
推
stack = stack + value
我建议将 pop 更改为:
value = stack[-1]; //short hand notation
stack = delete(stack, size(stack)-1); // to make sure the last item is deleted (in case duplicates exist in the list)
查看
List模块的文档:列表支持整个堆栈相关函数:push
、pop
、top
、dup
等。