
[英]SML/NJ Write a filter function which takes a anonymous function as an argument
[英]List.filter function not working in 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
是在结构List
定义的,因此您必须使用List.filter
或在使用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
的定义应该失败。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.