을 생성하지 않습니다. 터보 프롤로그 콘솔에 정확한 결과를 제공하여 비주얼 프롤로그 오류 C502 : 표현은 내가 비주얼 프롤로그 7.1</p> <p>원래 터보 프롤로그 코드는 다음과 같다에게 간단한 터보 프롤로그 문제를 번역하려고 값
DOMAINS
s=string sl=s* sll=sl*
PREDICATES
select(sl,s,sl)
solve(sll)
CLAUSES
select([A|B],A,B).
select([A|B],C,[A|D]):- select(B,C,D).
solve([["Anna",A,A],["Kate",Vp,Vt], ["Natasha",Np,"green"]]):-
select(["white","green","blue"],A,ColPl),
select(["white","blue"],A,[Vt]), Vt<>"white",
select(ColPl,Vp,[Np]), Vp<>"white", Np<>"green".
그 결과리스트
solve(Out)
로 출력된다. 비주얼 프롤로그이 번역하려고 할 때
, 나는 내가이 오류를 얻을하는 solve(Out)
인쇄 아무것도 제공하지 않는다는 것입니다 라인 (33)
implement main
open core
constants
className = "main".
classVersion = "".
domains
s=string.
sl=s*.
sll=sl*.
%
class predicates
select:(sl,s,sl) nondeterm anyflow.
solve:(sll) nondeterm anyflow.
%
clauses
%
select([A|B],A,B).
select([A|B],C,[A|D]):- select(B,C,D).
%
solve([["Anna",A,A],["Kate",Vp,Vt],["Natasha",Np,"green"]]):-
select(["white","green","blue"],A,ColPl),
select(["white","blue"],A,[Vt]), Vt<>"white",
select(ColPl,Vp,[Np]), Vp<>"white", Np<>"green".
clauses
classInfo(className, classVersion).
clauses
run():-
console::init(),
%ERROR AFTER THIS LINE
stdIO::writef("%", solve(Out)),fail().
end implement main
goal
mainExe::run(main::run).
에 오류 C502를 얻을. 내가 모르는 것은 인쇄 할 코드를 생성하는 코드를 변경하는 방법이다.
나는 Prolog의 초보자이며이 문제를 해결하는 방법을 알 수 없으며 Google은 많은 도움이되지 않는다. 이것은 매우 애매한 문제인 것처럼 보인다.
감사합니다.
귀하의 빠른 답변과 술어에 대한 이해를 고맙습니다! 불행하게도이 변경으로 인해 또 다른 오류가 발생합니다 : error c631 : 'procedure'로 선언 된 'main :: run/0'술어는 실제로 '실패'입니다 – Lowry
당신의 'fail main의 정의. –
이 변경 사항으로 '실패'가 'nondeterm'으로 바뀝니다 – Lowry