1
목록 길이를 계산하는 함수를 만들었습니다. 아래는 제 코드입니다.프롤로그 인수가 충분히 인스턴스화되지 않았습니다 (목록 길이를 계산하는 함수)
listLength(LIST) :- solve(LIST, LENGTH), write(LENGTH).
solve([], _).
solve([_|T], LENGTH) :- ADD is LENGTH + 1, solve(T, ADD).
I 입력
는, 인터프리터는 나에게 오류 메시지이 코드를 실행하는 경우 - listLength를 ([1, 2, 3, 4, 5, 6, 7). 나는 다음과 같은 코드 위에 수정 된 경우
solve/2 : Arguments are not sufficiently instantiated.
을 보였다. 다음 항상 0 기록 된
listLength(LIST) :- LENGTH is 0, solve(LIST, LENGTH), write(LENGTH).
solve([], _).
solve([_|T], LENGTH) :- ADD is LENGTH + 1, solve(T, ADD).
내가 같은 입력이 코드를 실행
.저는 LENGTH를 계산하고 싶습니다. listLength 함수에서 변수를 사용하고 싶습니다.
나에게 무슨 문제가 있습니까? (제발 swi-prolog를 사용하고 있습니다.)
이 listLength'같은 쿼리 (L, 10000)에 대한 매우 느립니다' – false
당신은 어떻게 조회 할 수 그것은 단지 하나의 걸리므로 그 매개 변수 목록 ?? – coder
당신이 옳습니다! 나는 끝에 만 보았다. 'solve (L, 100000' bu 나는 그것을 인정한다. 그것은 일어나지 않을 것이다. – false