3 ms·
giant, hideous, obtrusive diamonds inserted into the text to denote a hyperlink I hadn't even noticed that they're hyperlinks, I thought something had went wro
by dkersten 12y ago
giant, hideous, obtrusive diamonds inserted into the text to denote a hyperlink
I hadn't even noticed that they're hyperlinks, I thought something had went wrong with the text formatting or character set!
I've literally never run across a situation where I needed my code to edit itself.
Needed to is too strong a statement. I've never needed to write a macro (and in Clojure, its somewhat frowned upon to write macros when normal functions will do), but sometimes it saves you from a lot of working around limitations (and every language has limitations). It also allows things to be added to the language as libraries that otherwise would have to be built in - the majority of programmers won't need to do this, but if you do, its awesome knowing that its possible. Clojure's core.async is an excellent example (Go-style goroutine's, as a library).
I've never run across a situation where the lack of an everything-is-an-expression-is-a-list feature prevented me from doing what I wanted to do.
Of course not, but you can also do everything you want in assembly. What everything-is-an-expression-is-a-list gives you is 1) uniformity - everything works the same way, so it lowers the cognitive load; 2) simpler code - if you need a statement in an expression, you can do so, and other languages don't prevent you from getting the same result - they just take more code, or the code is more complex, or you use less-than-ideal constructs, or...
So you never need these things, but they make life more pleasant to have them.
I just don't really feel the need to get repetitive strain injuries in my pinky from reaching for the parentheses all the time.
I program in Clojure fulltime and I don't find that it has any more parentheses than a language like C++ or Java does. On top of that, anyone who programs in a Lisp for a while will use some form of paredit, which makes working with parentheses a breeze to the point where I find I type less than I do in other languages because jumping between parentheses, splicing parentheses-enclosed lists, wrapping things in parentheses and such tasks are a single keypress that just isn't possible in other less-parentheses-focused languages.
In short, just like significant whitespace in Python, parentheses are a non-issue in practice (after a short adjustment period).
But at the end of the day, to each his own. If Lisp doesn't do it for you, then that's fair enough - you don't have to use it :-)
- pjmlp 12y ago> I program in Clojure fulltime and I don't find that it has any more parentheses than a language like C++ or Java does. People see the parentheses and go crazy, but in fact it is just a matter of moving the opening parentheses. I now use this approach when explaining Lispy languages to others.
- taeric 12y agoYeah, I remember once a friend complaining about all of the parentheses. I asked him to literally scroll to the bottom of the java file he was at, where it was about as many closing braces as I have ever seen closing parens. I realize this is not necessarily the norm. But it was hilarious in context.