我确定有一种方法可以在SML中优雅地完成此操作,但我很难记录迭代次数(基本上是我的函数被调用的次数)。SML:跟踪迭代次数
我试图写一个函数来计算一对数字,一个用于答案的底部,另一个用于剩下的部分。所以,如果你叫:
divmod(11, 2)
,你会得到(5, 1)
回来。
这是我到目前为止有:
divmod(number : int, divisor : int) =
if number < divisor then
(number, count)
else
divmod(number - divisor, divisor);
很显然,我还没有建立我的计数变量,所以它不会编译但是这是算法的思想。剩下的就是将count初始化为0,并能够在递归调用之间传递它。但是我只允许这个函数的两个参数。
但是,我可以编写辅助功能。
想法?
不SML允许嵌套函数?在这种情况下,您可以使用它来传递count参数。 – Christian