3 ms·
> Lisp because of all of the parens and the sometimes "backwards" dataflow of nested functions. I've come to believe that the second part of this statement rea
by bitops 14y ago
> Lisp because of all of the parens and the sometimes "backwards" dataflow of nested functions.
I've come to believe that the second part of this statement really is the primary reason why Lisp drives some people absolutely nuts. The parens are really just a distraction and "easy" justification for not liking the language.
It makes sense, though. When you have to read both "outside in" and "bottom up", a lot of your acquired reading abilities (left to right, top to bottom) are in tension with the code you're trying to understand.
At least in Clojure, the ->> family of operators ("threading" macros) are doing a good job helping to alleviate this. Maybe they're available in other Lisps, I don't know.
EDIT: found a reference to these macros in Emacs Lisp: http://emacswiki.org/emacs/ThreadMacroFromClojure http://emacswiki.org/emacs/ThreadMacroFromClojure
- munificent 14y ago> I've come to believe that the second part of this statement really is the primary reason why Lisp drives some people absolutely nuts. Agreed. This is a major reason why Lisps read wrong to me and is one of my favorite things about conventional subject.verb(object) syntax in OOP languages. My own language[1] has Lisp-like semantics where methods are lexically-scoped and not attached to classes but retains something close to OOP syntax because I think that's such a readability win. For me, this is the best of both worlds. [1] http://magpie-lang.org/multimethods.html http://magpie-lang.org/multimethods.html