Search code examples
clojurelispcommon-lisplet

Clojure let vs Common Lisp let


In Common Lisp, the let uses a list for a bindings, i.e:

(let ((var1 1)
      (var2 2))
  ...)

While Clojure uses a vector instead:

(let [a 1
      b 2]
  ...)

Is there any specific reason, other than readability, for Clojure to use a vector?


Solution

  • You can find Rich Hickey's argument at Simple Made Easy - slide 14, about 26 minutes in:

    Simple Made Easy - slide 14