VDM++ 操作中的用例

Use cases in operations in VDM++

我是 VDM++ 的新手,我正在尝试在操作中使用案例以了解其工作原理。

我的想法是给操作一个输入,然后看看它给我的输出是什么。所以外汇。我的输入可能是:我希望输出是偶数。

以下操作失败报错"Unexpected token in expression"

public sign: (seq of char) ==> (seq of char)
sign(sign) ==
cases sign:
    <Even> -> "Even",
    <Odd> -> "Odd",
    others -> "Unknown"
end

希望错误实际上是 Unexpected token in statement(不是表达式?)。 case 语句要求每个 case 子句的 RHS 都是一个语句。所以你必须说 -> return "Even"。或者,你可以说 return cases sign: ...,把它变成一个大的 return 语句,然后它后面的 case expression 就会正确形成。