コードをより動的にしようとしています。次の内容のファイルがあります。
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).