RosettaCodeData/Task/Flow-control-structures/Racket/flow-control-structures-2.rkt

7 lines
206 B
Racket

(define (list-product l)
(with-handlers ([void identity])
(let loop ([l l] [r 1])
(cond [(null? l) r]
[(zero? (car l)) (raise 0)]
[else (loop (cdr l) (* r (car l)))]))))