나는 일반 cryptarithmetic 같은 오전 + 오후 = DAY, SEND + 더 = 돈으로 퍼즐 ..일반 프롤로그는 cryptarithmetic 프로그램
내가 작성한 프로그램을 해결하기 위해 프로그램을 작성하기 위해 노력하고있어입니다
gsolve([H1,T1],[H2|T2],[H3|T3]):-
gsolvehelper([H1,T1],[H2|T2],[H3|T3],[0,1,2,3,4,5,6,7,8,9],0).
gsolvehelper([H1,T1],[H2|T2],[H3|T3],D,C):-
( var(H1)->select(H1,D,D1);D1=D),
( var(H2)->select(H2,D1,D2);D2=D1),
( X1 is H1+H2+C),
( H3 is mod(X1,10)),
( C1 is X1//10),
gsolvehelper(T1,T2,T3,D2,C1).
입력 폼이다 : 처음 두리스트
gsolve([A,M],[P,M],[D,A,Y]).
헤드는 두 번째 목록의 헤드와 새로운 캐리를 찾기 위해 수행하기 위해 첨가된다.
내가 오류입니다 :이 오류가 무엇인지 알아낼 수 없습니다
ERROR: is/2: Type error: `[]' expected, found `[2,_G3922]' ("x" must hold one character)
. 누군가 이걸로 나를 도울 수 있습니까?
표시하는 코드는 오류 메시지를 표시하지 않습니다. '/ 2 : ... [2, _Gxxxx]'가 아니라''./2 : ... [_Gxxxx]'를 제공합니다. 이것은 실제로 잘못된 목록 구조가 발생했다는 것을 의미합니다 (실제 목록 술어는' '[H | T]'는 Prolog에서 실제로''(H, T)'입니다. – lurker
나는 (SWI7을 사용하여) usb와 같은 에러 메시지를 받는다. –
@false 맞다. 나는 주장을하기 전에 적절하게 테스트 했어야한다. 나쁘다. lurker가이 오류를 얻지 못하기 때문에 이것이 다양한 Prolog에서 어떻게 작동하는지 알고 있습니까? –