Name: Anonymous 2015-04-26 21:07
I've never really understood the Y combinator.
(define (product xs)
(display (list 'trace xs)) (newline)
(if (null? xs)
1
(* (car xs) (product (cdr xs)))))