SICP in Clojure (In Progress)
sicpinclojure.com
sicpinclojure.com
Is that a JVM limitation?
http://funcall.blogspot.com/2009/04/you-knew-id-say-somethin...
(It's part of a 5 part series... but you don't have to necessarily read all of them... it kind of wanders.)
Rather than going into fairly abstract examples* , TCO is useful because it allows more things to be expressed in terms of function calls, without having to worry about blowing the stack. While the discussion surrounding them can be a bit overly academic, they ultimately matter because they can help make code clearer. (Not always, but you can implement clearer looping mechanisms on top of them.) A tail call is like a de-fanged goto.
* Just one: Parsing by implementing a finite state machine in function calls. See Shriram Krishnamurthi's "The Swine Before Perl" (http://www.cs.brown.edu/~sk/Publications/Talks/SwineBeforePe...).
While the stacktrace no longer records intermediate steps, (and thus loses info useful for debugging), language implementations can typically hook tail calls to save the information when a debugging flag is on. It's not as big a problem in practice as some people think.
It has more emphasis on programming paradigms and Scheme is just a tool to convey them. Its core is small and simple enough that you could introduce advanced topics without the need for the reader to learn the language beforehand.
So perhaps a conceivable bonus is that SICP can somehow be merged with that book.
(This is not a direct answer to your question; there's nothing wrong with Scheme; just mentioning advantages of using Clojure.)
I wonder if the author considered making it a wiki and enlisting the clojure community's help?
btw, is there any work-in-progress implementations of arc using llvm?