3 ms·
(define (perfect-numbers integers) (stream-filter perfect? (stream-cdr integers))) (define (perfect? n) (= n (sum-stream (stream-filter (lamb
by c00p3r 16y ago
(define (perfect-numbers integers)
(stream-filter perfect?
(stream-cdr integers)))
(define (perfect? n)
(= n (sum-stream (stream-filter (lambda (x) (zero? (remainder n x)))
(stream-range 1 (+ (/ n 2) 1)))))))
Happy Happy Joy Joy!
- drunkpotato 16y agoFor the first, you don't need to wrap a function of one argument in a lambda. I can't remember if you need to quote function names in Clojure, so it's either: (stream-filter perfect? ... ) or: (stream-filter 'perfect? ...)
- c00p3r 16y agoThanks! btw, it Scheme. Compared to Clojure it is clean and readable.