Hi everyone!
I am currently learning Lisp and Clojure. A few days ago i read how
"if" in Arc works and I wonder why it is not the same in Clojure:
(if a b       ; if a then b
    c d       ; elseif c then d
      e)      ; else e.
I thought a bit about it and it seems that Clojure hasn't improved
Common Lisp's (in my humble opinion) crippled "if" and "cond". In CL
"cond" took any number of arguments, but they were pairs (additional
parentheses), and Clojure mimicked it (thus allowing only even number
of arguments). Dropping this parentheses is just one step from the
full "if" condtional syntax. You must admit that the last in condition
in "cond" is usually "true" and it is a workaround compared to Arc
syntax. Just by adding odd number of arguments to "cond" we would have
conditional replacing both "if" and "cond". Why have two weaker tools
instead of one beautiful and powerful?

I believe that the most general form of "if" is the part of "platonic
LISP" that we have in our hearts. (pompous mode off)

If this is too much I would like the possibility to redefine if - for
example make if+ a special form and if a macro.

--~--~---------~--~----~------------~-------~--~----~
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
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to