내가 DrRacket이 프롤로그 코드를 실행하려고 작동하지 : 그러나 http://www.anselm.edu/homepage/mmalita/culpro/graf1.html데이터 로그 코드가 DrRacket
#lang datalog
arc(a,b).
arc(b,c).
arc(a,c).
arc(a,d).
arc(b,e).
arc(e,f).
arc(b,f).
arc(f,g).
pathall(X,X,[]).
pathall(X,Y,[X,Z|L]):- arc(X,Z),pathall(Z,Y,L). % error on this line;
pathall(a,g)?
를, 그것은 다음과 같은 오류를주고있다 기호가 목록의 head-tail separator로 읽히지 않습니다. (이후의 라인이 제거 된 경우) 또한, []
는 오류를주고있다 :
#%app: missing procedure expression;
probably originally(), which is an illegal empty application in: (#%app)
방법이이 수정 될 수 있도록하고 g 사이의 경로에 대한 코드 작품과 검색?
위의 코드를 올바르게 작동하는 데이터 로그 코드로 어떻게 바꿀 수 있습니까? – rnso
용어는 목록이 될 수 없기 때문에 그럴 수 없습니다. DrRacket의 Datalog Module은 Prolog와 동등하지 않은 매우 간단한 모듈이며 특히 데이터 구조를 구현하지 않습니다. 당신이 할 수있는 것은 링크 된 예제의 첫 번째 부분, 즉 경로가 존재하는지 여부를 테스트하거나 경로를 출력하는 것입니다. – Renzo
라켓과 함께 적절한 프롤로그를 사용하는 방법이 있습니까? – rnso