[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: why tail recursion matters and why Java isn't it, was Re: lispperformance was Re: problems with lisp
Shriram Krishnamurthi wrote:
> Pascal Costanza <costanza@iai.uni-bonn.de> asks in what I can only
> hope is a fit of passion overcoming rational thought:
>
>
>>Why should it be important to cover all cases?
>
>
> Because programming language designers should not think they are a
> whole lot smarter than the programmers who will use their language.
> (Note: This wording even accommodates the design of Arc.)
I totally agree. Are language designers who don't include loop
constructs in a language a "whole lot smarter" than the programmers who
will use their language?
> Pushing even further, I would not want to use a programming language
> that *prohibits* the creation of syntactic abstractions that better
> capture constructs for a particular domain, especially new binding
> constructs and control structures ("loops"). While the language no
> doubt already supports pretty useful constructs for many purposes, I
> would not want a barrier to creating a better lightweight embedded
> language. A good language provides macros or templates just so it can
> "cover all cases".
I don't see how this contradicts my view. I totally agree with your
statements but I don't see how they preclude looping constructs in a
language.
Yes, loop in Common Lisp is not extensible, and this is a disadvantage.
But I am not arguing that Common Lisp provides the best possible
solution in this regard.
> Now in any other context, I would imagine that it would be you, the
> Common Lisp fan, making precisely this set of cases. So when did
> covering all cases cease to be an objective of a general purpose
> language? And if you buy into the above, then tail calls become
> inevitable; a macro system without tail calls underneath is
> fundamentally hobbled.
Yes, I am a Common Lisp fan, but this doesn't matter much for the topic
at hand.
Yes, Common Lisp with proper tail recursion and call/cc would be a
better language.
Pascal
--
Pascal Costanza University of Bonn
mailto:costanza@web.de Institute of Computer Science III
http://www.pascalcostanza.de Römerstr. 164, D-53117 Bonn (Germany)