Re: Relative merits of Lisp-1 vs. Lisp-2?



Didier Verna wrote:
Pascal Costanza wrote:

What's wrong with that ?
((make-adder 10) 3) and (let ((x (make-adder 10))) (x 3)) would not be the
same.

I fail to see the point. Since you know you're in a Lisp-2, you know
(x 3) will need a functional value for x, which is not what let provides (you
have flet for that), so I'm not expecting those two expressions to be the same
at all. I just want to be able to write the first one and I don't see a good
reason why it's not possible.

It's not a serious issue, but it could be confusing, especially when refactoring your code. Consider taking the complement of a function:

(not ((complement f) ...)) <=> (funcall f ...)
(not (f ...)) <=> ((complement #'f) ...)

It seems to me that this would make Lisp-2 harder to explain without gaining any expressiveness.


Pascal

--
3rd European Lisp Workshop
July 3 - Nantes, France - co-located with ECOOP 2006
http://lisp-ecoop06.bknr.net/
.