프롤로그 및 확실한 절 문법을 이해하려고하지만 두 문항 모두를 이해하는 데 어려움을 겪고 있습니다. 난 정말 DCG 구문을 사용하는 방법을 이해하려고매우 기초적인 dcg 프롤로그 구문
... 여기
내가 두 예제가 있습니다첫 번째는 실제로이 포럼에 있지만 추가 질문과 다른 질문의 코드입니다 :
코드는 다음처럼 보였다 :
s --> first, operator, second.
first --> [X].
operator --> ['+'].
second --> [X].
을 그리고 프롤로그가이에 대해 물었을 때, 그것은 참/거짓 반환하지만 나는 삶에 대한 수 없습니다 (X, [2, +, 2], [])를 물어 보면 실제로 값을 "바인딩"하는 방법을 알아 낸다. 첫 번째 값을 반환하므로 true를 반환하는 대신 X = 2라고 말합니다.
어쨌든 실제 질문으로 돌아갑니다. 보통의 프롤로그에는 몇 가지 규칙이 있는데 이것도 그 중 하나입니다. 그것은 실제로 아무 것도하지 않으며 단순히 예제로 구성되었습니다. 나는 시도하고 DCG의 기본 문법을 이해할 수 있도록 누군가가 DCG이 번역 할 수 있다면
do(X, Y, [H|T], Sum):-
H == 1, %check if H is 1
X = H,
Y = T,
Additional is H+5,
Sum is Additional+Additional.
기본적으로, 질문 있어요! 나는 약간의 튜토리얼을 읽으려고했지만 어떤 현명한 얻지 못했던 것 같은 기분이 든다. ...