如何创建一个由函数表示的空环境
How to create an empty environment represented by a function
我在网上遇到了这个问题,我发现它很有趣,它有一个不错的解释,但我对解决方案感到困惑。所以给出
type 'a fenv = name -> 'a
创建
类型的值
'a fenv
这将是我们的空环境。我认为这是以下内容
exception NotFound of name
val empty = fn name => raise NotFound name
它可能 return 一个未找到的名称异常,但我可能做错了,因为我继续得到
Type clash: expression of type
'a alist -> 'a alist alist
cannot have type
'a alist alist
Toplevel input:
val (_: 'a fenv) = empty
Unbound type constructor: fenv
抱歉,如果这很简单,在 sml 还是新的,有人可以解释一下我将如何获得解决方案吗?
谢谢
How to create an empty environment represented by a function
你可以这样做:
type name = string
exception NotFound of name
fun empty name = raise NotFound name
I may be doing this wrong because I continue to get
Type clash: expression of type
'a alist -> 'a alist alist
cannot have type
'a alist alist
您确实意识到您的代码没有提及 'a alist,对吗?您可能正在使用具有 type 'a fenv
过时定义的 REPL,或者您的文件包含多个定义,一个涉及此 'a alist,另一个包含此 'a fenv.
我在网上遇到了这个问题,我发现它很有趣,它有一个不错的解释,但我对解决方案感到困惑。所以给出
type 'a fenv = name -> 'a
创建
类型的值'a fenv
这将是我们的空环境。我认为这是以下内容
exception NotFound of name
val empty = fn name => raise NotFound name
它可能 return 一个未找到的名称异常,但我可能做错了,因为我继续得到
Type clash: expression of type
'a alist -> 'a alist alist
cannot have type
'a alist alist
Toplevel input:
val (_: 'a fenv) = empty
Unbound type constructor: fenv
抱歉,如果这很简单,在 sml 还是新的,有人可以解释一下我将如何获得解决方案吗?
谢谢
How to create an empty environment represented by a function
你可以这样做:
type name = string
exception NotFound of name
fun empty name = raise NotFound name
I may be doing this wrong because I continue to get
Type clash: expression of type 'a alist -> 'a alist alist cannot have type 'a alist alist
您确实意识到您的代码没有提及 'a alist,对吗?您可能正在使用具有 type 'a fenv
过时定义的 REPL,或者您的文件包含多个定义,一个涉及此 'a alist,另一个包含此 'a fenv.