코드에서없이 modulo, remainder 또는 /로 작성된 프로 시저를 사용하여 모듈로 산술을 수행하는 반복 프로 시저를 작성하려고합니다. 이런 식으로 지금까지 보이는 코드를 작성하는 동안 그러나 나는 몇 가지 문제로 실행 :반복되는 빼기에 의한 반복 모듈?
(define (mod a b)
(define (mod-iter a b)
(cond ((= b 0) 0)
((< b 0) (+ old_b new_b))))
(mod-iter a (- a b)))
당신이 볼 수 있듯이을, 나는 현재에 B의 원래 값을 추가 할 필요의 문제로 실행 b 값. 나는 그것에 대해 어떻게 가야할지 모르겠다. 또한, 두 번째 조건부의 답을 원시 데이터로 남겨 두었을 때 (enitre 프로 시저가 제대로 작동하는지 확인하기 위해) "지정되지 않은 반환 값"오류가 발생하고 나머지 코드가 루프 (또는 그렇게 보이나요?) 이것에 대한 통찰력을 가져 주셔서 감사합니다.
'old_b'및 'new_b'란 무엇입니까? –
@ ÓscarLópez의 [최근 답변] (http://stackoverflow.com/a/19084091/1281433)에서 설명한 것처럼 방금 한 번 호출 된 내부 정의를 사용하면 "named let"을 사용하는 것이 좋습니다. –