저는 프롤로그를 처음 접했고 아직 언어 구문에 어려움을 겪고 있습니다. 나는리스트를 통해 보이는 펑터를 쓰려고 노력하고 있는데,리스트의 모든 숫자의 합인 머리와 꼬리는 그 안에있는 다른 것이되는 새로운리스트를 만든다.프롤로그 - 목록에있는 숫자의 합
예 : [1,2, a, 3, b, c, 4] = [10, a, b, c]
지금 당장은 코드가 매우 조잡하다는 것을 두려워하지만 누군가 올바른 방향으로 나를 가리킬 수 있다면 크게 감사하겠습니다.
sumOfNumbers([X], Z) :-
number(X),
Z is Z+X.
sumOfNumbers([X], _) :-
not(number(X)).
sumOfNumbers([X|Rest], Z) :-
number(X),
Z is Z+X,
sumOfNumbers(Rest, Z).
sumOfNumbers([X|Rest], Z) :-
not(number(X)),
sumOfNumbers(Rest, Z).
바라지 만 이것은 완전히 근원적이지 않습니다. 다시 한번 감사
나는이 방법을 걸릴 것
Prolog에서 Z는 Z + X는 X = 0 인 경우에만 참일 수 있습니다. – CapelliC