【发布时间】:2011-05-12 08:10:31
【问题描述】:
我正在尝试使我的代码更具动态性。我有一个包含以下内容的文件:
a(b1, c1, d1).
a(b2, c2, d2).
a(b3, c3, d3).
当我找到所有b1 时,我列出了如下列表:
[b1, b2, b3].
当文件中的arity发生变化时,例如a(b1,c1,d1)变为a(b1,c1,d1,e1)时,我的代码不起作用。有没有办法解决这个问题?我正在使用 SWI-Prolog。
start :-
consult('file.pl'),
solve(L1, L2, L3),
list_to_set(L1, X),
write(X).
solve(L1, L2, L3):-
findall(First, data(First, _, _), L1),
findall(Second, data(_, Second, _), L2),
findall(Third, data(_, _, Third), L3).
【问题讨论】:
标签: list file prolog predicate arity