我试图让foreach/2
循环在 Prolog 中工作(使用 tkeclipse)。我知道它需要第一个参数中的一个元素和一个列表来搜索该元素作为第二个参数。
我的问题是,尽管尝试重写我的代码并在线寻找解决方案,但我仍然无法使其工作。
在下面的代码中,我尝试编写一个谓词visite/2
,它接受博物馆列表并返回它们所在城市的列表。
非常感谢您的帮助,因为它可以让我为即将到来的考试做好更好的准备。
musee(paris,louvre).
musee(rome,vatican).
musee(madrid,prado).
musee(berlin,kulturforum).
musee(londres,british_museum).
visite([X],L) :-
findall(V,musee(V,_),List),
(
foreach(X,List) do findall(C,musee(C,X),L)
).