[Haskell-cafe] Language simplicity

Martin Coxall pseudo.meta at me.com
Thu Jan 14 09:46:37 EST 2010

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.


More information about the Haskell-Cafe mailing list