Comment by skywal_l
4 years ago
The syntax for me is a drag on the language. Make me spend more than a 2 seconds trying to untangle parameters from function name and you lost me.
What I think made the language special is its level of abstractness. Unless I am mistaken, it is the first language where you could manipulate function as a first-class citizen. This and the ability to use closure. 60 years ago, it was really innovative.
Now, javascript does it...
Definitely first-order functions made LISP powerful compared to its contemporaries-- but also you can't mention abstraction without mentioning macros. Macros are first-class metaprogramming, and very much enabled by the uniformity of s-expressions.
That said, people can do awesome stuff with any language, so all this is very subjective IMO.
The function name is the first item; the parameters are the others: (fun x y z).
Some Lisp dialects separate the two further in definitions:
The Scheme style is "definition follows use": the definition looks like the call:
Now if the function name above were actually y and not fun, I'd have to spend more than two seconds separating it from the arguments fun, x and z.