4 ms·
Other languages have absorbed just about all the other key lisp ideas. Garbage collection, first-order functions, dynamic typing etc are all uncontroversial now
by cageface 16y ago
Other languages have absorbed just about all the other key lisp ideas. Garbage collection, first-order functions, dynamic typing etc are all uncontroversial now. I don't think it's an accident that s-exprs have been conspicuously unpopular in comparison.
I actually find the Clojure syntax harder to parse. Nested mixtures of }, ], and ) are very difficult to pick apart visually.
- oconnore 16y agoMacros.
- adambyrtek 16y agoWhat about them?
- oconnore 16y agocageface missed the major reason why Lisp in general is powerful: prefix notation is really the only clean way to implement macros. The rest is just icing on the cake.
- cageface 16y agoS-exprs == macros
- oconnore 16y agoThose two things are not equivalent at all. I don't think you understand what you are talking about. S-expressions define a class of syntax styles. By themselves, they have no semantic characteristics at all. Macro's are a way in which the compiler rewrites the syntax tree based on user programs. Do you see the difference?
- gnosis 16y ago"Nested mixtures of }, ], and ) are very difficult to pick apart visually." And nested ), ), and ) are easier to pick apart visually? At least with }, ], and ) you know any given } matches a { and not a ( or a [. Whereas with all )'s, it's a lot harder (for me) to know which ( in a mountain of ('s it's going to match. A good editor and proper indenting will, of course, mitigate some of the pain. But I'd MUCH rather have a mix of {'s, ['s, and ('s, than all ('s.
- cageface 16y agoAnd nested ), ), and ) are easier to pick apart visually? You don't have to pick them out in CL, just balance them. Much easier (IMO).
- deleted 16y ago[deleted]
- deleted 16y ago[deleted]
- technomancy 16y agoYou don't have to pick them out or balance them in any lisp. That's what paredit is for.
- officemonkey 16y agoSo easy that a decent text editor can do the job.
- Xurinos 16y agoAt least with }, ], and ) you know any given } matches a { and not a ( or a [. Whereas with all )'s, it's a lot harder (for me) to know which ( in a mountain of ('s it's going to match. I have found the opposite. It's a lot easier to close with a bunch of )))s at the end of a line than to flip around with the )]}]))} line noise. I let my code's structure give me meaning. I am less concerned with matching things and more concerned with readable code arrangement. It is easier for me to read English-like words than a bunch of symbols. As a result, the ))s are almost equivalent whitespace with the exception that they provide useful and common structure.
- nene 16y agoYou can't introduce s-exprs into an ordinary language - it would cease to be an ordinary language and become a Lisp dialect instead.