0
爲了編寫一個程序滿足(P,L)返回所有項X的列表L,使得一元謂詞P(X)成功。我曾嘗試以下內容:滿足一元Prolog謂詞
satisfy(P,L):- findall(X,call(P(X)),L).
我在正確的軌道上還是完全沒有了?
爲了編寫一個程序滿足(P,L)返回所有項X的列表L,使得一元謂詞P(X)成功。我曾嘗試以下內容:滿足一元Prolog謂詞
satisfy(P,L):- findall(X,call(P(X)),L).
我在正確的軌道上還是完全沒有了?
您可以用做內建謂詞調用/ 2:
satisfy(P, L):- findall(X, call(P, X), L).
不完全。您使用findall/3
進入正確的軌道,但您無法通過簡單地陳述P(X)
構建目標電話。您需要改爲使用=../2
來代替。