Alternative Version Analysis
    In the 
    make-withdraw
     procedure, the local variable 
    balance
     is created as a parameter of 
     make-withdraw
    . We could also create the local state variable explicitly, using 
    let
    , as follows:
(define (make-withdraw initial-amount)
  (let ((balance initial-amount))
    (lambda (amount)
      (if (>= balance amount)
          (begin (set! balance (- balance amount))
                 balance)
          "Insufficient funds"))))
    Recall from section 
    1.3.2
     that 
    let
     is simply syntactic sugar for a procedure call:
(let ((<var> <exp>)) <body>)is interpreted as an alternate syntax for
((lambda (<var>) <body>) <exp>)
    Use the environment model to analyze this alternate version of 
    make-withdraw
    , drawing figures like the ones above to illustrate the interactions
(define W1 (make-withdraw 100))
(W1 50)
(define W2 (make-withdraw 100))
    Show that the two versions of 
    make-withdraw
     create objects with the same behavior. How do the environment structures differ for the two versions?