这是OCaml中的主要代码,用于带有Tail递归的Sigma函数。
let sigma_tail_rec term a next b =
let rec iter a result =
if "A" then "B"
else iter "C" "D"
in iter a 0
我不知道如何填充<A>
到<D>
,因此无法编译
是否有人帮助我填写<A>
到`......?
我试过这样的
let sigma_tail_rec term a next b =
let rec iter a result =
if a>b then result+1
else iter a+1 result+a
in iter a 0
我不知道“ in iter a 0
”语法是什么意思
答案 0 :(得分:1)
我可以解释in iter a 0
。
OCaml中递归本地函数的定义如下所示:
let rec
有趣 参数=
定义in
表达
在表达式中,您可以调用函数 fun ,该函数由定义定义。
sigma_tail_rec
的框架定义使用名为iter
的本地递归函数,它带有两个参数。 表达式(给出sigma_tail_rec
的总值)为iter a 0
。
如果没有关于这项任务的更多信息,很难说更多。一般来说,我要说你需要调用term
(这可能决定你何时到达计算结束时)和next
(可能会生成一个新值来处理)。所以有很多工作要做,我很害怕。