私はこのような関数の構築に関して質問があります。ocamlreの2つの配列の間で関数を構築する反復
list1.(0) -> list2.(0)
list1.(1) -> list2.(1)
...
list1.(n-1) -> list2.(n-1)
はどのようにそれを行うには:ここでは
、私は2つのリストを持って、両方が同じ長さを持つ(長さがn
ある、と私はしたい場合は、この要件を満たす機能であることを言うの?関数内で反復処理を行う必要がありますか?または2つの関数を追加する必要がありますか?このようなものに答えるには、微妙な方法が必要です。
申し訳ありませんが、実際にはかなり簡単です。私は簡単にnlucaroniによって書かれた関数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;;
あなたは明確にしようとすることができます:
別のアプローチは、標準ライブラリ関数を使用することであろうか?私はあなたが構築したい機能を理解していません - それは同じ長さの2つのリストを超えているということだけです。 – akoprowski
OCamlではリストと配列が完全に異なっていることを認識しています。 – nlucaroni
@akoprowski:list1のn番目の引数が入力であれば、list2のn番目の引数を返します。さらに、この関数を別の関数の引数として使用します。 – zfm