簡體   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