我在理解這個函數的工作原理時遇到了一些問題,特別是我不理解最後一行的控制流程。 有人能解釋我的步驟,可能是僞代碼嗎?Ocaml,瞭解一個函數
let traduit_pair a b =
let a = traduit mark a in let b = traduit mark b in (a, b) in
let (teq1, teq2, lneq) =
let rec f l1 l2 l3 =
(function
| [] -> ((Uplet l1), (Uplet l2), l3)
| EqualIF (a, b) :: fin ->
let (a, b) = traduit_pair a b
in f (a :: l1) (b :: l2) l3 fin
| NotEqualIF (a, b) :: fin ->
let (a, b) = traduit_pair a b
in f l1 l2 ((a, b) :: l3) fin)
in f [] [] [] (List.rev condlst)
我不確定「關於最後一行的控制流程」是什麼意思。最後一行只是調用在它之前的行上定義的函數「f」。 – sepp2k
我想說整個函數的控制流,我不明白爲什麼最後一行有四個參數,什麼是返回值。謝謝你的評論。 – Giovanna
函數f被調用來爲元組賦值(teq1,teq2,lneq)? – Giovanna