<div><div>In the following, (FOO) should evaluate to 50, but actually evaluates</div><div>to 90 because BAR's A binding has overwritten FOO's. Should they not</div><div>have separate bindings?</div></div><div><br></div>

<div>  (progn</div><div>    (let ((a 5))</div><div>      (defun foo () (* 10 a)))</div><div>    (let ((a 9))</div><div>      (defun bar () (* 100 a))))  </div><div>  </div><div>  var a = 5;</div><div>  function foo() {</div>

<div>      return 10 * a;</div><div>  };</div><div>  var a = 9;</div><div>  function bar() {</div><div>      return 100 * a;</div><div>  };</div><div><br></div><div>Daniel</div>