(define factorial (lambda (n) (define product-of-range (lambda (low product) ;multiplies n down to low, times product (if (< n low) product (product-of-range (+ low 1) (* low product))))) (product-of-range 1 1)))