我知道在maude中你可以通过以下方式之一定义一个操作:
op operation_: Nat -> Bool . // for 1 operands
op _operation_: Nat Nat -> Bool . // for 2 operands
但有没有办法定义操作,以便它有更多的操作数?
答案 0 :(得分:2)
我想三元条件运算符(来自Basic Maude)应该是一个很好的例子:"函数名中存在下划线意味着我们使用的是mixfix。这个想法是函数的每个参数都将替换其中一个下划线。例如,考虑
op if_then_else_fi : Bool Nat Nat -> Nat .
然后我们可以像这样应用这个运算符:
if B then X else Y fi
其中B是布尔值,X和Y是Nats。"
在manual中没有提到操作员的限制(阅读第33-35页以包含操作员声明的全部功能),所以
op _ _operation_ _ _: Nat Nat Nat Nat Nat -> Bool . // for 5 operands
也应该没问题。我想在某些时候你应该达到特定的实现,平台或内存限制。