(define between
  (lambda (low high)
    (if (> low high)
        null
        (cons low (between (+ low 1) high)))))



The major steps in evaluating (between 19 21):
(Think about how you'd derive these from the above code;
just looking and nodding and thinking 'yeah that looks reasonable'
won't help you learn!)


  (between 19 21)
=
  (cons 19 (between 20 21))
=
  (cons 19 (cons 20 (between 21 21)))
=
  (cons 19 (cons 20 (cons 21 (between 22 21))))
=
  (cons 19 (cons 20 (cons 21 null)))


which can also be written as:

= (list 19 20 21)