나는 프롤로그에 새로운 오전에 목록 길이를 호출하고 다음 링크에서 99 프롤로그 문제를 해결하는 동안 오류가 발생 :프롤로그
http://www.ic.unicamp.br/~meidanis/courses/mc336/2009s2/prolog/problemas/
내가 문제 # 10의 솔루션을 작성했습니다. 내가 [[1,1,1,1,1],[2,2,2],[3,3]]
처럼 같은 숫자를 포장하고 길이를 찾을 수 있도록 처음
encode(L,Ans) :-
pack(L,Res),
encode_list(Res,Ans).
encode_list([],[]).
encode_list([[X|Xs]|Zs],[[len,X]|Ans]) :-
len is length([X|Xs]),
encode_list(Zs,Ans).
pack([],[]).
pack([X|Xs],[Y|Ys]) :-
transfer(X,Xs,Zs,Y),
pack(Zs,Ys).
transfer(X,[],[],[X]).
transfer(X,[Y|Ys],[Y|Zs],[X]) :-
X =\= Y,
transfer(X,Ys,Zs,[X]).
transfer(X,[X|Xs],Ys,[X|Zs]) :-
transfer(X,Xs,Ys,Zs).
라고 내가 먼저 가정하자 encode([1,1,1,1,1,2,2,2,3,3],X)
처럼 같은 수의 포장되는 일을 오전과 요구에 따라 다음 그룹을 : 다음은 내 솔루션입니다.
나는 그것이 나에게 다음과 같은 오류를 제공 년대 length
함수를 호출 한 후 encode_list
를 호출하고 때 올바르게 유사한 번호를 포장 있지만 :
ERROR: is/2: Type error: `[]' expected, found `[1,1,1]' ("x" must hold one character)
누구든지 저를 도와주십시오! 왜이 오류를주는거야?
내가 실수 길이 함수는 두 개의 인수를 발견 ..... .이 어리석은 실수를해서 미안 해요 ........ 그리고 또 하나의 오류는 작은 글자로 변수 이름 len을 찍었습니다 ...이 두 가지를 수정 한 후에 이것은 잘 작동합니다 .... –
그럼에도 불구하고 , 오류 '[]'이 예상되는 메시지는 꽤 오도 된 것입니다. – false
예 .... 그래서 나는 오류를 찾을 수 없습니다 ... 그래서 여기에 게시 .... –