logoalt Hacker News

d-lispyesterday at 3:51 PM2 repliesview on HN

That's funny, I never found doubled namespaces that interesting; what are your opinions, why do you prefer them ?

> electric parens

I get you, I was amazed by the litterature around lisps (I always found the beginning of SICP (the wizard-programmer analogy) quite inspiring and fun)


Replies

escandayesterday at 4:05 PM

It was kind of a joke intent but it gives out to better naming position although unambiguous symbols to specify a symbol; such as #' for function names. Plus now that I remember the common Lisp ANSI specification is just awesome, free and locally installable and browsable from Emacs at symbols from ages. Common Lisp images were myriads ahead in an intospectable sense, like Smalltalk. Objects and primitives can use the built-in debugger to display their inwards. The environment is just plain astonishing, moreover ten years ago - when I started - and Emacs is free as in speech and compilable from scratch, plus org-mode is awesome as well. Nowadays I feel sorry of Python introspection capabilities although hinted typing improved it so much. Not to mention Common Lisp tight generated assembly and it's garbage collector which was ahead of its own: first with Boehm and then with parallel ones. SICP was nice although nicest was the one about gravitational physics, or brownian motions, also in Scheme. Good times.

show 1 reply
bitwizeyesterday at 8:07 PM

Lisp-2 virgins want to name a variable 'list' and not shadow the function named 'list', so they add on a separate function binding to each symbol. "So you have to type sharpquote if you want the function value of a symbol," they say. "What's the big deal?" Except they don't stop there: symbols also have to have package awareness and "property lists", or in other words an arbitrary number of other bindings.

Scheme chads understand that perfection is achieved not when there is nothing left to add but when there is nothing left to take away. They realize functions are nothing special, just another object that can be manipulated and operated on, so why create a separate namespace and binding for them? Why put bindings in the symbol at all, since if you are designing your language correctly bindings will vary with lexical environment? So symbols have been stripped down to just a name that the language recognizes as an identifier for a value, function, special form, or whatever else. And functions are just values that get applied whenever in head position of an eval'd list.

I jest, I jest. Seriously, I love Common Lisp, but I'm with you: Lisp-1s appeal better to my aesthetic sensibilities.