是否可以在 Rascal 中定义自己的运算符?

Is it possible to define your own operators in Rascal?

我正在编写一些测试辅助函数以使输出更合理:

bool tstEq(first, second) {
  if(first == second) 
    return true; 
  else {
    println("<first> was not equal to <second>");
    return false;
  }
}

是否可以这样做?

bool ===(first, second) = tstEq(first, second);

用法:

test bool myTest() = 1 === 2

这会导致类似的结果:

rascal>:test
1 was not equal to 2
bool: false

简短的回答:没有。我完全同意这可能很方便(但也可能导致代码可读性降低)。

考虑到我们要首先解决的主题列表很多,这样的功能不太可能在不久的将来出现在 Rascal 中。