Hello gentleman, Why isn't '(sum-milt-iter three five a b sum1 sum2)' evaluating to 23 given that '(mult-sum 5)' and '(mult-sum 3)' return the right answer, namely 5 and 18?
; linear iterative process for computing the sum of the multiples of 3 and 5 < 10 #lang racket (define (sum-mult three five) (sum-mult-iter three five 1 1 0 0)) (define (sum-mult-iter three five a b sum1 sum2) (cond [(and (>= (* five b) 10) (> (* three a) 10) (+ sum1 sum2))] [else (sum-mult-iter three five (+ a 1) (+ b 1) (+ sum1 (* three a)) (+ sum2 (* five b)))])) ; Ive spent some time trying to understand why '(+ sum1 sum2)' does not evaluate to 23, but I cannot see why. given that: (define (mult-sum five) (mult-sum-iterator five 1 0) ) (define (mult-sum-iterator five b sum2) (if (>= (* five b) 10) sum2 (mult-sum-iterator five (+ b 1) (+ sum2 (* five b)))) ; test > (milt-sum 5) ; 5 and likewise '(milt-sum three)' evaluates to 18. (define (mult-sum three) (mult-sum-iterator three 1 0) ) (define (mult-sum-iterator three a sum2) (if (>= (* five a) 10) sum2 (mult-sum-iterator five (+ a 1) (+ sum2 (* five a)))) ; test > (mult-sum 3) ; 18 -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.