我試圖讓我的代碼更加動態。我有以下內容的文件:在Prolog中動態設置參數
a(b1, c1, d1).
a(b2, c2, d2).
a(b3, c3, d3).
當我發現所有b1
,我做出這樣的名單:
[b1, b2, b3].
當元數的變化在文件中,例如,當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).
可能重複[如何根據序言元數推廣計劃? ](http://stackoverflow.com/questions/5949012/how-to-generalize-program-according-to-arity-in-prolog) – 2011-05-13 08:33:01