If you mean Lisp as a straightforward expression of "Lambda calculus" then I would agree.
However, Lisp as in Common Lisp most certainly has a good amount of syntax. And let's not forget macros which amount to user defined syntactic extensions.
Here are some examples of syntax built into the standard:
Let's not forget that most of what one might think of as built-in features in Common Lisp are actually standardized extensions to the language built with macros.
All of the power, expressivity, and extensibility of Common Lisp is what makes it my favorite programming language. It's what makes everything like above possible and gives power back to the user. But ignoring the syntactic complexity will not win us any followers!
TLDR: Common Lisp isn't simple, but it exposes one of the most powerful and empowering programming environments we have.
> If you mean Lisp as a straightforward expression of "Lambda calculus, then I would agree.
That's what I was talking about. The language, being programmable, especially with read macros, can be used to create a very syntactically full language, but at it's basic core level, there is really just '(', ')', '.' and symbols.
However, Lisp as in Common Lisp most certainly has a good amount of syntax. And let's not forget macros which amount to user defined syntactic extensions.
Here are some examples of syntax built into the standard:
Lambda lists have varying syntax depending on context. http://www.lispworks.com/documentation/lw70/CLHS/Body/03_d.h...
Declarations have both standardized and implementation defined syntax for introducing information into the compile-time environment: http://www.lispworks.com/documentation/lw70/CLHS/Body/03_c.h...
Type specifiers introduce new syntax for both standardized and user-defined types: http://www.lispworks.com/documentation/lw70/CLHS/Body/04_bc....
Logical pathnames: http://www.lispworks.com/documentation/lw70/CLHS/Body/19_ca....
Feature expressions: http://www.lispworks.com/documentation/lw70/CLHS/Body/24_aba...
And of course, programmable reader macros which is how syntax for every single language primitive in the language is introduced: http://www.lispworks.com/documentation/lw70/CLHS/Body/02_d.h...
Here's an example of a complex standardized macro with its own domain specific syntax (loop): http://www.lispworks.com/documentation/lw70/CLHS/Body/06_a.h...
Let's not forget that most of what one might think of as built-in features in Common Lisp are actually standardized extensions to the language built with macros.
All of the power, expressivity, and extensibility of Common Lisp is what makes it my favorite programming language. It's what makes everything like above possible and gives power back to the user. But ignoring the syntactic complexity will not win us any followers!
TLDR: Common Lisp isn't simple, but it exposes one of the most powerful and empowering programming environments we have.