title: let loop code in Racket. Recursive factorial
body: <p>Consider:</p>
  
  <pre><code>(define (factorial x)
    (let loop ((x x)
               (acc 1))
      (if (zero? x)
          acc
          (loop (sub1 x) (* x acc)))))
  </code></pre>
  
  <p>I dont understand how does work let here. Moreover, I dont understand this code.</p>