我想编写一个函数,通过删除小于或等于特定数字的所有内容来过滤数字列表.该功能将采用两个参数:数字列表和要过滤的数字.该函数应返回一个列表,其中所有数字都大于过滤器编号.
有时这样:
filter_num_list(L1,N,L2) :- ...
test_filter_num_list :- filter_num_list([1,2,3,4,5,6,7,8,9],5,[5,6,7,8,9]).
Run Code Online (Sandbox Code Playgroud)
另请参见include/3和exclude/3等库谓词:
?- include(=<(5), [1,2,3,4,5,6,7,8,9], Is).
Is = [5, 6, 7, 8, 9].
Run Code Online (Sandbox Code Playgroud)
尝试类似的东西:
filter_num_list([],N,[]) :- true.
filter_num_list([H|T],N,[H|S]) :- H > N,filter_num_list(T,N,S).
filter_num_list([H|T],N,S) :- N >= H, filter_num_list(T,N,S).
Run Code Online (Sandbox Code Playgroud)