6 ms·
> I think it would take too long to work out the meaning of every piece of code you see from first principles. Just as in mathematics, once you've proven somet
by catnaroek 10y ago
> I think it would take too long to work out the meaning of every piece of code you see from first principles.
Just as in mathematics, once you've proven something, you can reuse the result as often as you want. But “the community always does this” isn't a proof.
> I do agree that Lisp benefits from more functional data structures (...) there's nothing besides common sense and convention that prevents FSet client code from mucking about inside the guts of the FSet data structures.
Then Lisp doesn't have functional data structures. That's no surprise, Lisp has no more compound values than Python or Ruby do - that is, none.
> Even in languages that nominally support access control, like C++ and Java, you can usually still get around it with casting or reflection.
Standard ML actually has type abstraction, and, once you've made something abstract, there's no way clients can inspect it. No downcasts, no reflection, no anything - abstract means abstract.
- ScottBurson 10y ago> Then Lisp doesn't have functional data structures. That's no surprise, Lisp has no more compound values than Python or Ruby do - that is, none. Ah, the arrogance of youth.
- catnaroek 10y agoIt isn't arrogance, it's just the semantics of the programming languages in question. Programming languages being such fundamental tools, you would think every programmer should understand them well, but that is far from being the case. It is tempting to blame programmers, but the real culprit is the subtlety and depth of the topic. Two great resources to get started are https://www.amazon.com/dp/0262201755/ https://www.amazon.com/dp/0262201755/ and https://www.amazon.com/dp/0262690764/ https://www.amazon.com/dp/0262690764/ Anyway. A value is something you can bind to a variable. Unfortunately, you can't bind the list [1,2,3] (or whatever syntax you might prefer) to a variable in either Python or Lisp, because those languages simply don't have lists (or any other kind of compound value).
- ScottBurson 10y agoI read back through your recent comments. I notice you get downvoted a lot. Does this bother you?
- catnaroek 10y agoI don't particularly mind.