2012-01-25 5 views
0

단항 술어 P (X)가 성공하도록 모든 용어 X의리스트 L을 리턴하는 프로 시저 satisf (P, L)을 작성하십시오. 나는 다음과 같이 시도했다 :단항 Prolog 술어 만족하기

satisfy(P,L):- findall(X,call(P(X)),L). 

나는 바른 길에있다, ​​또는 나는 완전히 갔다?

답변

2

당신은 사용을 할 수있는 내장 술어 전화/2 :

satisfy(P, L):- findall(X, call(P, X), L). 
2

아닙니다. findall/3을 사용하면 올바른 방향으로 가고 있지만 P(X)으로 간단하게 전화를 걸 수 있습니다. 대신 =../2을 사용하여 용어를 구성해야합니다.