(define silly (lambda (n) (if (< n 1) 0 (+ (silly (- n 1)) (silly (- n 1)))))) (define odds1 (lambda (lst) (let kernel ((remaining lst) (odd-values null)) (cond ((null? remaining) odd-values) ((odd? (car remaining)) (kernel (cdr remaining) (append odd-values (list (car remaining))))) (else (kernel (cdr remaining) odd-values)))))) (define odds2 (lambda (lst) (let kernel ((remaining lst) (odd-values null)) (cond ((null? remaining) (reverse odd-values)) ((odd? (car remaining)) (kernel (cdr remaining) (cons (car remaining) odd-values))) (else (kernel (cdr remaining) odd-values)))))) (define make-list (lambda (number-of-elements value) (vector->list (make-vector number-of-elements value))))