2013-05-27 2 views
0

두 번째 이유는 무엇인지 이해할 수 없습니다. 나는 첫 번째 예제에서 II 변수가 필요하지 않다고 생각했지만 그럴 것 같지만 왜 그런지 모르겠습니다. findex([1,2,5,4], 5, I)으로 전화하면 첫 번째 예보다 올바른 색인 3을 반환하고 두 번째 예는 false을 반환합니다. 누군가 그것을 이해하도록 도와 줄 수 있습니까?프롤로그 - 내장 명령입니다

답변

2

두 번째 예는 작동하지 않습니다.

이해해야 할 중요한 점은 이 INDEX is INDEX +1에서 동일하고 동일한 값을 가져야한다는 것입니다. 대수학의 변수와 같습니다. 방정식의 모든 X는 같은 값을 의미합니다.

또 다른 방법은 Prolog의 모든 변수가 "assign once"변수라는 것입니다. 변수가 값을 가지면 역 추적 없이는 변경할 수 없습니다.