4

ocaml で整数配列要素のインデックスを見つけようとしています。これを再帰的に行う方法。コード例:let a = [|2; 3; 10|];; 配列 a のインデックス 3 を返したいとします。どんな助けでも感謝します。OCaml プログラミングは初めてです

4

3 に答える 3

4
type opt = Some of int | None;;

let find a i =
  let rec find a i n =
    if a.(n)=i then Some n
    else find a i (n+1)
  in
  try 
    find a i 0
   with _ -> None
;;

テスト

# find a 3;;
- : int option = Some 1
# find [||] 3;;
- : int option = None
# find a 12;;
- : int option = None
于 2015-11-28T21:03:12.910 に答える
3

インデックスを使用して各要素を再帰的にチェックします

let rec find a x n =
if a.(n) = x then n 
else find a x (n+1);;

find a x 0;;

要素が配列の一部ではない場合、例外が発生します(nが配列の長さよりも大きい場合)。

于 2015-11-28T18:09:24.000 に答える