在VDM中指定隐式函数时,是否可以指定一个咖喱函数?在下面的test1和test2中,都是显式的、不带咖喱的函数,而test3是一个隐式的非咖喱函数。所有都被序曲所接受。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发布于 2016-02-07 11:35:29
不,恐怕咖喱函数只是为显式函数定义提供的。而且,隐式定义没有部分/总指标。
(我只是问我们为什么会有这样的差别。这似乎与语言的历史有关:英语学派产生了含蓄的功能,而丹麦学派则有明确的功能。它们确实应该协调一致--您猜到的语法可能就是结果。)
https://stackoverflow.com/questions/35250830
复制相似问题