配列の最小値を返す関数があります。パターンが配列に一致する
機能を入力しています
min : int array -> int
を
その実装は次のとおりです。
let rec min a = match a with
| [] -> 1000000000
| x :: [] -> x
| x :: xs -> let ms = min xs in if x < ms then x else ms;;
しかし、私はこのエラーを取得しています:
Found min with unexpected type:
Wrong type int list -> int.
それでは、どのように私は、パターンの配列を一致させることができます?
"1000000000"はいくつかの入力で間違った結果を出すでしょう、あなたは魔法の数字を含まない方法を見つけるべきです。 – coredump
あなたはそれを間違った方法でIMOにアクセスしています。配列のパターンマッチングは配列の構文で行うことができます。しかし、head :: tailパターンはありません。配列はインデックスによる直接アクセス用に作られています。必要に応じて配列をリストに変換することができます。 –