Anonymous user
Sum multiples of 3 and 5: Difference between revisions
m
Scheme: Added decomposed version
(Scheme version) |
m (Scheme: Added decomposed version) |
||
Line 523:
<lang scheme>
(fold (lambda (x tot) (+ tot (if (or (zero? (remainder x 3)) (zero? (remainder x 5))) x 0))) 0 (iota 1000))
</lang>
Output:
<pre>
233168
</pre>
Or, more clearly:
<lang scheme>
(define (fac35? x)
(or (zero? (remainder x 3))
(zero? (remainder x 5))))
(define (fac35filt x tot)
(+ tot (if (fac35? x) x 0)))
(fold fac35filt 0 (iota 1000))
</lang>
|