我有關於構建一個像這樣的函數的問題。迭代在ocamlre中構造兩個數組之間的函數
在這裏,我有兩個表,都具有相同的長度(說長度爲n
,那我想情況是滿足這一需求的功能:
list1.(0) -> list2.(0)
list1.(1) -> list2.(1)
...
list1.(n-1) -> list2.(n-1)
怎麼辦呢?我應該做一個函數內部的迭代嗎?或者如何追加兩個函數(以及如何)?必須有棘手的方法來回答這樣的問題
對不起,必須自己回答這個問題,我只是發現這個其實很簡單,我可以很容易地創建一個函數f
,這個函數寫得非常簡短。
let rec f domain range x =
match (List.hd domain) = x with
| true -> (List.hd range)
| false -> f (List.tl domain) (List.tl range) x;;
你可以嘗試澄清?我不明白你想要構建什麼功能 - 只是它有兩個相同長度的列表。 – akoprowski 2011-03-08 18:18:51
意識到OCaml中的列表和數組完全不同。 – nlucaroni 2011-03-08 21:09:01
@akoprowski:我想創建一個函數,其中如果list1的第n個參數是輸入,我將返回list2的第n個參數。此外,我將使用這個函數作爲另一個函數的參數。 – zfm 2011-03-08 22:01:48