2014-01-24 2 views
1

프롤로그 예제를 자습서로 검토하고 있습니다.프롤로그 피연산자 없음 술어

print_all_solutions :- 
    findall(_,print_solution,_). 

가 어떻게 콘솔에서 print_all_solution 호출 할 수 있습니다 :이 예에서는이 같은 제로 피연산자와 술어가?

?- print_all_solutions 

아무 대답도 :

?- print_all_solutions. 

응답 없음 나는 프롤로그 콘솔에서이 요청하는 경우 나는 아무것도 얻을 수 없다.

?- goal(state([],right,[a,b,c,d],12)). 
true. 

?- goal(state([],right,[a,b,c,d],19)). 
false. 

가 어떻게 콘솔에서 솔루션을보고, 아니 연산자 (/ 0)와 술어에 대한 질문을해야합니다

나는 같은 다른 질문에 대한 정확한 답변을 얻을 수 있지만?

+0

print_solutions는 어떻게 정의됩니까? 그것은 모두 의존합니다. – false

답변

2

init(State) 또는 더 많은 경우 solve(State,Solution,EndState) 중 하나가 작동하지 않는다고 생각됩니다.

당신은 디버그에 필요한 : 소스 파일

?- leash(-all),trace. 
?- print_solution. 

을 협의 한 후 다음 명령을 입력하고 프롤로그 엔진

단순히 콘솔이 입력 한
+0

고맙습니다. 시도해 보았습니다. TRUE로 대답했지만 여전히'print_solution'에 답이 없습니다. '-? 가죽 끈 (-all), trace.' 는' '[추적]을 true.' - print_solution.' 응답 없음! – parisa

0

에서 몇 가지 단서를 얻을 것이다 :

findall(_,print_all_solutions,_). 

나는 대답을 얻습니다.

+2

이것은 답을 줄 수 있지만 print_all_solutions을 입력하면 답이 나오지 않는다. 'findall (_, print_all_solutions, _) .'은'print_all_solutions'에서 제공하는 모든 답을 수집합니다. – lurker