News for hackers. Stuff that matters.
Re:Clojure: 1, Common Lisp: 0 by radu_floricica on Monday January 19, 2009 @12:02PM (#440629)
It's pretty realist, it even has a doseq especially for side-effects iterations. It's not that it forces you to be FP (it can't, you can always run java methods), it's that it makes the advantages obvious and lets you decide.

It is my first contact with FP, but what I find incredibly cool is the way the data structures are transparently persistent. If it's true this is a rarity in functional languages, I can't imagine using another one.

Re:Clojure: 1, Common Lisp: 0 by 11ren on Monday January 19, 2009 @12:27PM (#440663)
I'm curious, what do you mean by "transparently persistent"? Do you mean that you can serialize anything (and so persist it as a file or what have you)?
Re:Clojure: 1, Common Lisp: 0 by radu_floricica on Thursday January 29, 2009 @07:38PM (#457446)
Uh.. I know it's been 10 days :p

Let's say you have a map, and you change a value in it. Being a functional programming language, and the map being an immutable structure, you end up with two maps: the old and the new. Now, the cool part is every data-structure in clojure is designed _not_ to do this by copying the whole thing. You'll have two maps who share everything except the changed value. Same with collections, sets, trees etc. The work under the hood must be impressive...

Another nice thing (for me at least, coming from imperative programming) is there is a better difference between a variable and a value. A variable is a placeholder, and a value is ... well, a value. In clojure you treat them separately. A better explanation: http://clojure.org/state

Re:Clojure: 1, Common Lisp: 0 by sctb on Monday January 19, 2009 @01:35PM (#440745)
Persistent in this case means that if FOO has value '((2 3) 4) and someone does (CONS 1 FOO) => '(1 (2 3) 4); the value of FOO does not change, but the new list shares its structure.
Re:Clojure: 1, Common Lisp: 0 by reeses on Monday January 19, 2009 @04:01PM (#440885)
If you do a cons cell diagram for this it will make perfect sense.