0
목록의 모든 항목을 합산하는 조건부를 작성해야합니다. 항목은 목록에있는 목록 일 수 있습니다. 예 : sum1 ([1, [2,3], 4, [5]], X). 나는 작동해야하는 코드를 가지고 있지만 인수를 제공 할 때 충분히 인스턴스화되지 않은 오류가 있습니다. 나는 프롤로그에 새로 왔지만 이것들은 나에게 잘 보였다. 여기에이 술어 (기능)에 대한 내 전체 코드프롤로그 합계 던지기 오류
suml([],0).
suml([H|T],X) :- atomic(H),S2 is H + X, suml(T,S2).
suml([H|T],X) :- suml(H,S1), S3 is S1 + X, suml(T,S3).
당신을 다시 감사합니다! 이 두 번째 줄을 시도했지만 작동하지 않습니다. suml ([H | T], X) : - suml (T, X), suml (H, S1), S1 + X. 기본적으로 이것은 목록이있는 경우입니다. 또한 합쳐서 추가하십시오. 하지만 이것은 작동하지 않고 메신저 gettin 정의되지 않은 절차 –
nvm! 나는 잘못했다, 나는 강사가 예를 어떻게 가지고 있었기 때문에 X의 코드에 혼란 스러웠다. 나는 그것을 얻었고, 그것은 suml ([H | T], X)이어야한다 : - suml (T , S1), suml (H, S2), X는 S1 + S2이다. –