2
オプションエラー」と機能狂気私を駆動する:最初の引数の各タプルに対してOCamlの:私はこの単純な機能を持っている
myfunction : (int * int list) list -> int -> int
:それは、このタイプの関数であるべき
第2引数がタプルの最初の要素と一致すると、関数はタプル内のリストの最後の要素を返します。
一致しない場合は、-1が返されます。
let rec myfunction alist anum =
let last_e l =
let len = List.length l in
List.nth l (len - 1) in
match alist with
| [] -> -1
| (n , ln) :: q -> if n = anum then last_e ln
else myfunction q anum
しかし、私の機能は動作しませんし、私はutopにこのエラーメッセージを持っている:「オプション」タイプはどこから来るか私にはわからない
Error: This expression has type 'a option but an expression was expected of type int
。
コードから正しい機能を分離したことは確かですか?例えば'myfunction [(1、[1]); (2、[2])] 2は私に「2」(エラーなし)を与えます。 –
@barti_ddu、これは、コアがロードされたutopでこれをテストしたので正常です。私が受け入れた答えを見てください。 – cedlemo