Set/sequence求和运算符?
Set/sequence summation operator?
我有一套,S = { 1, 2, 3, 4, 5 }
。
如果我想用标准逻辑对它求和,它只是 ∑S(SO 上没有 MathJax,所以我不能很好地格式化它)。
VDM 等价物是什么?我在语言参考的 numerics/sets 部分没有看到任何内容。
这应该有效:
sum(S)
但是你可以很容易地找到它。
没有标准库函数可以执行此操作(尽管也许应该有)。您将使用简单的递归函数对集合求和:
sum: set of nat +> nat
sum(s) ==
if s = {}
then 0
else let e in set s in
e + sum(s \ {e})
measure card s;
"let"从集合中选择任意一个元素,然后将其与余数之和相加。该度量表示递归总是处理较小的集合。
我有一套,S = { 1, 2, 3, 4, 5 }
。
如果我想用标准逻辑对它求和,它只是 ∑S(SO 上没有 MathJax,所以我不能很好地格式化它)。
VDM 等价物是什么?我在语言参考的 numerics/sets 部分没有看到任何内容。
这应该有效:
sum(S)
但是你可以很容易地找到它。
没有标准库函数可以执行此操作(尽管也许应该有)。您将使用简单的递归函数对集合求和:
sum: set of nat +> nat
sum(s) ==
if s = {}
then 0
else let e in set s in
e + sum(s \ {e})
measure card s;
"let"从集合中选择任意一个元素,然后将其与余数之和相加。该度量表示递归总是处理较小的集合。