;; These functions are basically the same as on the slides (define (len l) (if (null? l) 0 (+ 1 (len (cdr l))))) (define (len-tr l accum) (if (null? l) accum (len-tr (cdr l) (+ 1 accum)))) (define (len2 l) (len-tr l 0)) (define (reverse1 l) (if (null? l) () (append (reverse1 (cdr l)) (list (car l))))) (define (reverse-tr l accum) (if (null? l) accum (reverse-tr (cdr l) (cons (car l) accum)))) (define (reverse2 l) (reverse-tr l ()))