On 14 Jan 2010, at 14:42, Matthias Görgens wrote: >> All Lisps have "special forms" which are evaluated uniquely and differently >> from function application and are therefore reserved words by another name. >> For example, Clojure has def, if, do, let, var, quote, fn, loop, recur, >> throw, try, monitor-enter, monitor-exit, dot, new and set!. > > Yes, but the special forms are not distinguishable from user defined > macros --- and some Lisp-implemantations special forms are another > implementations macros. E.g. you can choose to make `if' a macro that > expands to `cond' or vice versa. I do not know whether you are > allowed to shadow the name of special-forms. >
Clojure's a lot more 'syntaxy' than most Lisps. It has literals for large classes of entities that get represented as lists in most other Lisps. Which I guess is clearly a pragmatic design decision: be as syntax-heavy as is reasonably practicable without sacrificing homoiconicity and ending up like Dylan. Martin_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe