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 就会正确形成。
我是 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 就会正确形成。