【发布时间】:2015-03-17 17:22:13
【问题描述】:
好的,所以我正在为 SML 中的环境创建函数表示:
type name = string
type 'a fenv = name -> 'a
我有点不知道如何进行此操作。我需要做的第一件事是定义一个 'a fenv 类型的值 fenvEmpty,它表示空环境(不绑定任何名称的环境)。到目前为止,我有这个:
val fenvEmpty =
let
fun empty (name) = ???
in
empty
end
我不确定我是否走在正确的轨道上。我应该从空函数返回什么?输入 0、null 或 NONE 将不起作用。
稍后,我还必须编写返回与环境中特定名称关联的数据的函数(查找函数),以及将数据绑定到环境中特定名称的函数(绑定函数),但是我' m 已经卡在 fenvEmpty 部分了。
【问题讨论】:
-
不应该
fenv有返回类型'a option? -
不,规范要求它返回 'a
-
规范是否说明了当参数是环境中未设置的名称时应返回的内容?
-
没提,但是有同学提示我应该抛出异常。因此,我将其更改为引发 NotFound 名称异常的值内的 lambda 函数。
标签: sml