【发布时间】:2020-04-03 16:42:42
【问题描述】:
在深入研究 SML 中的类型时,我发现了这个
fun monthI2S 1 = "January"
| monthI2S 2 = "February"
| monthI2S 3 = "March"
| monthI2S 4 = "April"
| monthI2S 5 = "May"
| monthI2S 6 = "June"
| monthI2S 7 = "July"
| monthI2S 8 = "August"
| monthI2S 9 = "September"
| monthI2S 10 = "October"
| monthI2S 11 = "November"
| monthI2S 12 = "December"
在我看来,它就像一个用作查找表的函数。 (我什至不确定这种 SML 函数实际上叫什么。它看起来像一个 Haskell 归纳公式?)有没有办法通过处理输入的情况来避免“非详尽”警告是<= 0 orelse > 12?
fun monthI2S m = if m <= 0 orelse M > 12 then NONE else ...?
| monthI2S 1 = "January"
| monthI2S 2 = "February"
| monthI2S 3 = "March"
| monthI2S 4 = "April"
...
显然不起作用,因为我无法协调 else 与 | ...。还是我只是完全找错了树,应该只使用case-like 方法?
【问题讨论】:
-
“样式”不是有名字的样式,它是一个带有许多模式匹配子句的常规函数。
标签: function sml lookup-tables