我正在构建一个简单的函数,以便从item
...
List1
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
为什么这么简单的功能无效?
答案 0 :(得分:2)
对于错误消息“unbound variable or constructor:filter”,在这种情况下,它意味着在顶层环境中不存在标识符“filter”。由于filter
在结构List
中定义,因此您必须先使用List.filter
,或在使用open List
之前发出语句filter
。例如,
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
的定义应该失败。