我有这个声明
type 'a dict = string -> 'a option
val empty : unit -> 'a dict
val insert : 'a dict -> string * 'a -> 'a dict
遵循此声明,我该如何撰写empty
? empty ()
只返回一个空字典。
答案 0 :(得分:2)
我不想让你自己解决问题的部分短路。这是提示。
字典的类型为string -> 'a option
。即,如果字符串与字典中的值无关,则它是一个函数,它返回您在字典中查找的内容或None
。看起来像一个空字典是没有字符串与任何东西相关联的字典,因此该函数将始终返回相同的结果。编写一个总是返回相同内容的函数并不是那么难。
您的代码返回值(类型'a
),但它应该返回'a option
类型的内容。否则它是伟大的代码,你正在抓住它的意义(恕我直言)。