List.filter 函数在 SML/NJ 中不起作用



我正在构建一个简单的函数来从List1中删除item......

fun Strip(item, List1) = filter (fn x => x <> item) List1;

输入:

Strip(3,[1,2,3,4,3]);

错误:

Error: Unbound variable or constructor: Strip

备用输入:

filter (fn x => x <> 5) [1,3,5,2,5];

备用错误:

stdIn:1.2-1.8 Error: unbound variable or constructor: filter

知道为什么这么简单的功能不起作用吗?

对于错误消息"未绑定变量或构造函数:过滤器",在这种情况下,这意味着标识符"filter"在顶级环境中不存在。由于filter是在结构List中定义的,因此在使用filter之前,您必须使用List.filter或发出语句open List。例如

List.filter (fn x => x <> 5) [1,3,5,2,5];

open List;
filter (fn x => x <> 5) [1,3,5,2,5];

至于使用Strip时的错误,你确定你的Strip定义是成功的并且没有错误吗?如果您尝试使用代码显示的filter,但解释器找不到它,则Strip的定义应该失败。

最新更新