나는 두 부분으로 구성된 숙제를하고 있습니다. 첫 번째는 특정 쌍 X, Y가 http://en.wikipedia.org/wiki/Triangular_number에 속하는지 확인하는 프롤로그 프로그램을 작성하는 것입니다. 예 : (2, 3) = true; (4, 10) = true et cetera.프롤로그, 삼각 숫자, 누적 기 및 꼬리 재귀
제 용액 '통상'재귀를 사용하며,이 같은이 해결했습니다
triangle(0, 0).
triangle(X, Y) :- X > 0, Y > 0, A is X - 1, B is Y - X, triangle(A, B).
번째 부분은 삼각형/3 술어를 사용하여,이 사용 꼬리 재귀/누산기를 해결하는 것이다. 비록 내가 사용법이 아주 명확한 다른 어시 젼트에서 어큐뮬레이터를 사용해 봤지만 어큐뮬레이터를 사용하는 방법에 대한 일반적인 생각이 있었기 때문에 이것을 사용하는 방법에 관해서는 아주 의아해했습니다.
그래서 알고리즘을 찾고있는 것이 아니라 훨씬 더 나 자신을 해결할 것이지만이 맥락에서 누산기를 적용하는 방법에 대한 실질적인 조언을 더 많이합니다.
아, 감사합니다. 당신이 말했듯이, 산술 연산을 한 후에 삼각형/2를 호출하기 때문에, '정상적인'재귀 적 솔루션의 꼬리 재귀에 대해 궁금합니다. 그 시간 술어를 지적 해 주셔서 고맙습니다 :) – Oxymoron