具有三变量辅助函数的指数递归ML函数

Recusive ML function of exponential with three variable helper function

我需要帮助来弄清楚我需要递归地为辅助函数做什么,我有点迷失了我需要为辅助函数做什么。

这是问题和示例输入。

下面是辅助函数的作用示例

这是我到目前为止写的

您只需稍微更改符号即可找到解决方案。

将a*bn写成exp3(a, b, n).

然后例子说,

  exp(3,4)
= exp3(1, 3, 4)
= exp3(1*3, 3, 4-1)
= exp3(3*3, 3, 3-1)
= exp3(3*9, 3, 2-1)
= exp3(3*27, 3, 1-1)
= 81

你实际上已经得到了解决方案——文本字面意思是“引理 4.15 提供了一个基本案例,引理 4.16 提供了一个递归案例”。

引理 4.15:

exp3(a, b, 0) = a

引理 4.16:

exp3(a, b, n) = exp3(a * b, b, n - 1)

而需要帮助的函数应该只有一种情况;示例中显示的第一个“步骤”:

fun exp(a, b) = exp3(1, a, b)