# [racket-users] '(sum-milt-iter three five a b sum1 sum2)'

```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