[英]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.