thanks, matt. i never knew "tail recursion" was special. but let me clarify my little example
All iteration can be represented as "tail recursion", that's
why it's notable (especially in a functional language)
it doesn't seem like "recursion" to me because it isn't really calling itself... well, it kind of is, but its calling an implementation of itself in another instance of the same class.
That's why I changed the syntax in my previous example: It's really calling the same method, but with a different argument. If
you forget about the whole "." notation, this becomes apparent. Consider the instance as the "0th parameter".
Hope that helps.