我是新來的prolog,我只是無法弄清楚這一點。序言列表和參數和返回值
我想構建一個簡單的程序,它接收謂詞列表,在列表中搜索特定的謂詞,並將函數應用於謂詞的參數。
東西沿着這些路線:
?- program([pred1(a,b,p), pred2(d,b,p), pred2 (a,c,p)]).
program (list1) :-
search(pred2(X,Y,p),list1).
doSomething (X,Y) % with the X and Y returned from search function, both of them.
基本上,我想用這將從客觀search(pred2(X,Y,p),list1)
回報,並利用它們對其他功能的所有值。
好吧,我試着在序言中的一些東西,來到這一點:
member(X, [X | _]).
member(X, [_ | R]) :- member(X, R).
prog(L1,Out) :- member(pred2(X,Y), L1).
?- prog ([(pred1(a,b),pred2(c,b),pred2(d,a)],Out).
它給真正的2倍,是應該的,但我希望得到Out = [c,b]
和Out = [d,a]
。我如何實現這一目標?
關於橡樹的答案:我知道它不是一種程序性語言,但我不知道如何訪問值並在序言中使用它們。你的例子並沒有那麼有用。