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
类型的值。否则,它是伟大的代码,你正在抓住它的重点(恕我直言)。
这是一个很有趣的家庭作业问题,我很嫉妒你tbh :-D – Yawar