1. ホーム
  2. recursion

[解決済み】再帰使用時のOcamlエラーUnbound Value

2022-01-20 19:18:50

質問

私はocamlの初心者なので、私のコードは非常に基本的なものです。 ある関数を再帰的に呼び出そうとしているのですが、関数名でunbound valueというエラーメッセージが表示されます。

let count_help x a lst = match lst with 
    [] -> a
    | (s,i)::t -> if s = x then count_help x a+1 t else count_help x a t
;;

let count_assoc lst x =
    count_help x 0 lst
;;

エラーは、count_help の内部で count_help を呼び出している行の Unbound value count_help

このコードは、与えられた文字 x に対して連想が現れる回数を数えるだけのものです。

どのように解決するのですか?

と言う必要があります。

let rec count_help ...

という名前を許可します。 count_help を定義内で再帰的に使用することができます。