9 ms·
Sure, it is a matter of degree - we could ask, how much extra crud is needed? I think lisp like languages have less crud, and so the idea is clearer. This is
by gord 17y ago
Sure, it is a matter of degree - we could ask, how much extra crud is needed? I think lisp like languages have less crud, and so the idea is clearer.
This is partly because lisps can act on their own expressions, transform them. This follows from extremely uniform or consistent grammar.
Now you could say C++ can do that, but look at the amount of machinery needed in Boost to add something like a lambda or an accumulator 'pattern' to the language.
Its a matter of degree - sure you can write a DSL in C++ [recursive descent, lex/yac, boost, macros etc] but in lisp this really is just a natural part of the language - syntactic sugar can be manufactured.
Lets take the idea of a callback - this is an excellent design pattern that gives you a great deal of power. You could implement using function pointers in C, or say functor objects with operator() in C++... either way, I contend there is a lot more crud and boilerplate than there is in lisp where a lambda is a fundamental construct of the language.
The more surrounding crud or machinery, the less clear the concept.
In other words, patterns in lisp can be _more_ clearly distinguished as such, because there is less cruft.
Often the name of the concept or pattern actually occurs in the code as a function name, for example.
- axod 17y ago>> "I think lisp like languages have less crud, and so the idea is clearer." Part of being a good programmer is being able to see through crud. Personally, I don't really care about crud. It doesn't bother me. I think it's a good skill to learn to be able to recognize and understand code that's within a bowl of crud.
- asciilifeform 17y ago> I don't really care about crud. It doesn't bother me. Then you won't mind when a garbage truck unloads its multi-ton cargo into your home.
- axod 17y agoI don't equate crud with garbage. Crud is stuff you ignore after a while.