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 clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en