Types ocaml类型澄清(初学者)

Types ocaml类型澄清(初学者),types,ocaml,Types,Ocaml,我有这个声明 type 'a dict = string -> 'a option val empty : unit -> 'a dict val insert : 'a dict -> string * 'a -> 'a dict 在这个声明之后,我如何写空的empty()只返回一个空字典。我不想让你自己解决问题的部分短路。这里有一些提示 字典的类型为string->'A选项。也就是说,它是一个函数,如果字符串与字典中的值没有关联,则返回您在字典中查找的内容或None

我有这个声明

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

在这个声明之后,我如何写
空的
empty()
只返回一个空字典。

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

  • 字典的类型为
    string->'A选项
    。也就是说,它是一个函数,如果字符串与字典中的值没有关联,则返回您在字典中查找的内容或
    None
    。空字典似乎是一个没有字符串与任何内容关联的字典,因此函数总是返回相同的结果。编写一个总是返回相同内容的函数并不难

  • 您的代码正在返回值(类型为
    'a
    ),但它应该返回类型为
    'a选项的值。否则,这是一个伟大的代码,你就抓住了它的要点(IMHO)


  • 这是一个非常有趣的家庭作业问题,我很嫉妒你