2015-01-06 1 views
1
작동하지

내가 총액을 계산 라켓에서 작동 그래서 내가 쓴 :제도 (라켓) 제대로 작성 기능은 일부 입력

(define (sum term a next b) 
    (if (> a b) 
     0 
     (+ (term a) (sum term (next a) next b)))) 

기간이 함수는 모든 인수에 적용되는 것입니다. A는 다음 요소 인 다음 요소 (예 : a2 = 2 * a1 또는 a2 = a1 + 1 등)로 진행하는 방법이며 b는 최종 요소입니다. 내가 입력하면

(define (square x) (* x x)) 
(define (inc x) (+ x 1)) 

:

2 개 개의 추가 기능이 있습니다

(합 광장 1 INC 5) 55

하지만 경우 올바른 내가 얻을 유형 :

(제곱근 1 평방 5)

나는 루프에 갇혔다!? a2가 a1 * a1이고 a3 = a2 * a2이고 a가 b를 초과해야하는 이유는 재귀를 종료하는 조건이 fultifield가되는 이유입니다. 아주 이상한.

+6

(제곱 1)은 항상 1보다 크지 않습니다 :-) – Diego

+0

지금은 너무 바보 같아요! 고맙습니다! – MitakaJ9

+0

@DiegoNietoCid : 답변입니다. 덧글이 아닙니다. – Svante

답변

8

귀하의 sum 기능 의지 루프는 (square 1) 항상 1로 평가 영원히 때문에 5보다 커서는 안됩니다.