在 VDM-SL 中指定隐式函数时,是否可以指定柯里化函数?下面的 test1 和 test2 是显式的 uncurried 和 curried 函数,而 test3 是一个隐式的 uncurried 函数。Overture 都接受了所有内容。test4 是对隐式柯里化函数的尝试,但被 Overture 拒绝。
另外,有没有办法用隐式函数定义来指定它应该是全部的?
module moduleName
exports all
definitions
functions
test1 : nat * nat +> nat
test1 (arg1,arg2) == arg1+arg2;
test2 : nat -> nat +> nat
test2 (arg1) (arg2) == arg1+arg2;
test3 (arg1:nat,arg2:nat) res:nat
post res = arg1+arg2;
test4 (arg1:nat) (arg2:nat) res:nat
post res = arg1+arg2;
end moduleName