我对 Prolog 还很陌生,我正在努力理解列表的概念。我正在尝试的一个例子是:
value(a, 1).
value(b, 2).
value(a, 3).
value(a, 4).
value(c, 3).
我正在尝试创建一个谓词,在查询时find(a, List)
会导致:List = [1, 3, 4].
它只是简单地检查所有事实并将匹配的事实添加到列表中。
我试过这样的事情。但这似乎根本不对:
find(X, List):-
value(X, D), append([D], [], [List|Rest]), find(X, [Head|List]).
抱歉这么基本的问题。任何指导表示赞赏。
注意:我打算通过添加列表中的所有值来扩展程序。