标签: prolog
我想使用内置谓词include / 3来获取长度大于N的列表列表中的所有列表。
我已经尝试过了:
% S is the size I'm checking for include((length(_, N), N = S), List1, List2).
但是没有用。我不确定如何正确指定我的身高目标。我尤其不确定用什么代替“ _”。
答案 0 :(得分:3)
更简单的方法:为谓词提供适当的参数(例如,一个 schema 适配器):
length_list(Len,List) :- length(List,Len).
然后
..., include(length_list(S), List1, List2).
根据您使用的系统,yall和lambda库都是不错的选择,值得研究。
使用yall:
?- L1=[[a],[a,b]],S=2,include({S}/[L]>>length(L,S),L1,R). L1 = [[a], [a, b]], S = 2, R = [[a, b]].