<div dir="ltr">What is/are the reason(s) for choosing the 'let*' construct over the 'define' construct?  <br><br>(define (print-two f)<br>  (let* ([_ (print (first f))]<br>         [f (rest f)]<br>         [_ (print (first f))]<br>         [f (rest f)])<br>    f))<br><br>(define print-two <br>  (lambda (f)<br>   (print (first f))<br>   (set! f (rest f))<br>   (print (first f))<br>   (set! f (rest f))<br>   f))<br><br>(void (print-two '(1 2))) ;=> 12<br><br></div>