#lang racket ; using default arguments allows us to eliminate the initialization ; function for the recursor. The [ out-list '() ] parameter means ; if no out-list is provided, use '() the empty list. (define lreverse (lambda (in-list [ out-list '() ] ) (if (null? in-list) out-list (lreverse (rest in-list) (cons (first in-list) out-list)) ) ) ) (lreverse '() '()) (lreverse '(1) '()) (lreverse '(1 2 3 4) '()) (lreverse '(1 2 3 4))