ocaml型澄清(初学者)

时间:2017-03-05 18:25:00

标签: types ocaml

我有这个声明

type 'a dict = string -> 'a option
val empty : unit -> 'a dict
val insert : 'a dict -> string * 'a -> 'a dict

遵循此声明,我该如何撰写emptyempty ()只返回一个空字典。

1 个答案:

答案 0 :(得分:2)

我不想让你自己解决问题的部分短路。这是提示。

  1. 字典的类型为string -> 'a option。即,如果字符串与字典中的值无关,则它是一个函数,它返回您在字典中查找的内容或None。看起来像一个空字典是没有字符串与任何东西相关联的字典,因此该函数将始终返回相同的结果。编写一个总是返回相同内容的函数并不是那么难。

  2. 您的代码返回值(类型'a),但它应该返回'a option类型的内容。否则它是伟大的代码,你正在抓住它的意义(恕我直言)。