6 lines
206 B
Racket
6 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)))]))))
|