在 Rascal 中遍历地图

Iterate over a map in Rascal

我正在尝试在这种结构的地图上创建地图理解:

map[Node, set[Node]]

我的地图理解是这样的:

(currentNode: {currentNode} | <currentNode, _> <- dominanceSet);

但是我收到了这个错误:

有没有办法使用另一种策略实现类似的行为?

Rascal 中的地图生成器生成键值(而不是某种形式的“条目”或元组)。

所以代码是:

(currentNode: {currentNode} | currentNode <- dominanceSet)

请注意,标准库中有一些专门用于更快索引关系的函数,例如 Relations 中有 map[&K, set[&V]] index(rel[&K, &V] R);