3 ms·
The most basic reason for wanting a Lisp-1 would be to make code more context-free. "foo" refers to "foo", and you don't have to be aware of whatever special un
by rtpg 6y ago
The most basic reason for wanting a Lisp-1 would be to make code more context-free. "foo" refers to "foo", and you don't have to be aware of whatever special underlying context is there.
The closest parallel I can think of is Scala implicits. You give me a fragment of Scala code using implicits it might be hard to know _what_ is going to happen. Similarly, having a bunch of namespaces (or, perhaps more importantly, leaning into them and having many name overlaps) just means that it's harder to read a single code fragment and know what it's going to do.
Though I'm pretty partial to the argument that, like..... yeah you're going to call a function so the name refers to a function. But without extra symbols around this concept to help the reader, in this age it seems like a concept that is hard to take advantage of.
- kazinator 6y agoThe context is basically (here ... versus (... here ... That's what makes possible the two spaces.
- ralphc 6y agoI don't know if it's a "reason" or not, but lisp-1 semantics would be more familiar to a language that legions of programmers would be familiar with - JavaScript. Eich wanted to make Scheme for the web, and having a variable containing a function, no matter where it's placed, would be the least cognitive distance from what people are used to.