Hi Terje,
The `let` form allows rebinding of symbols, which is not the same as
mutability. In the form
(let [x 1
y 2
x (+ x y)]
x)
the value of `x` does not change, rather the third line creates a new
binding for `x`. The difference may seem trivial, but most functional
languages allow this kind of rebinding. Imagine if you could never rebind a
symbol after using it: you would quickly run out of symbols. That said,
reusing the same symbol within one `let` form will make your code harder to
read.
As you note, you can write a procedural program within a `let` form, and
that's not necessarily a bad thing in the right circumstances. But as Alan
notes, it's essentially the same as many nested `let` forms.
-Stuart Sierra
clojure.com
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en