;; a
because let expression will be substituted as lambda expression, every lambda expression will extend the environment.
;; b
the new environment is confined to the let expression, it doesn't change the outer environment.
;; c
get all the definitions to the top of procedure body
meteorgan