In Clojure we can bind a piece of the code/data to a
var (variable). To declare a global var we use a
def special form (similar to
let keyword in JS world).
(def my-list '(0 1 2))
We could also bind an expression to a
range in our example returns numbers from 0 to 2
(0 1 2).
(def my-new-list (range 3))
We could also define a lexically scoped (local) bindings with a
let special form. We declare them in square brackets by providing name and value pairs.
b are only accessible in
let scope wraped with parenthesis.
(let [a 1 b 2] (+ a b)) -> 3 (+ a b) -> Syntax error