繁体   English   中英

如何使用OCaml进行尾部递归功能? 需要语法建议和解释

[英]How can I make Tail recursion function with OCaml? Syntax advice & explanation needed

这是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 ”语法的含义

我可以in iter a 0来解释。

OCaml中的递归局部函数的定义如下所示:

let rec 乐趣 参数 = 定义 in 表达

表达式中,您可以调用函数fun ,它由其定义定义

sigma_tail_rec的框架定义使用名为iter的本地递归函数,该函数带有两个参数。 表达式 (给出sigma_tail_rec )为iter a 0

如果没有有关此作业的更多信息,很难说更多。 一般来说,我想说的是,您需要调用term (它可能决定您何时到达计算的结尾)和next (可能会生成要处理的新值)。 恐怕还有很多工作要做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM