【发布时间】:2014-03-05 05:08:30
【问题描述】:
我正在学习 SML 中的模式匹配,我想编写一个函数 fact_till (a,b) 来计算 a!/b!。例如,fact_till(5,3) 应该返回 5*4=20。
我的代码如下所示:
fun fact_till t = case t of
(a,a) => 1
| (a,b) => a * fact_till(a-1,b)
但我得到了Error: duplicate variable in pattern(s): a。我认为 SML 无法识别模式 (a,a)。那么这种模式的正确表达方式是什么?
【问题讨论】: