2
私は、この宣言以下この宣言OCamlの型の明確化(初心者)
type 'a dict = string -> 'a option
val empty : unit -> 'a dict
val insert : 'a dict -> string * 'a -> 'a dict
を持って、どのように私はempty
を書き込むことができますか? empty()
は空の辞書を返します。
私は、この宣言以下この宣言OCamlの型の明確化(初心者)
type 'a dict = string -> 'a option
val empty : unit -> 'a dict
val insert : 'a dict -> string * 'a -> 'a dict
を持って、どのように私はempty
を書き込むことができますか? empty()
は空の辞書を返します。
私はあなた自身のために物事を把握する部分を短絡させたくありません。ここにヒントがあります。
辞書のタイプはstring -> 'a option
です。つまり、文字列が辞書の値に関連付けられていない場合は、辞書内で探しているものを返す関数、またはNone
を返す関数です。空の辞書のように、文字列が何も関連付けられていないので、関数は常に同じ結果を返します。常に同じことを返す関数を書くのはそれほど難しいことではありません。
あなたのコードは(タイプ'a
の)値を返していますが、タイプ'a option
の何かを返すことになっています。そうでなければそれは素晴らしいコードです、あなたはそれのポイント(IMHO)をつかんでいます。
これは宿題のためのとても楽しい質問です。私はかなり嫉妬しています。 – Yawar