removeAll(X, [ X | T], [ H1 | T1 ] ):-
( member ( X , T )
-> removeAll ( X , T , [ H1 | T1 ] )
;[ H1 | T1 ] is T
).
removeAll ( X , [ H | T ] , L ):-
removeAll ( X , T , L2 ), append ( [ H ] , L2 , L ).
如果我传入 "
removeAll(2,[1,1,2],L)
",它会给出错误信息 "ERROR: is/2: Type error: 'evaluable' expected, found '[]' (an empty_list)
"。如果我传入 "
removeAll(1,[1,1,2],L)
",它会返回 false。真的很困惑。我做错了什么?
member ( X , T )
最好改为member(X, T)
。 - repeat