On 29/03/2014 03:54, Yuhao Dong wrote:
Using accumulator+reverse won't really improve the runtime at all.
Every other benchmark has (unfortunately) shown the opposite.
I think that tail recursion doesn't help at all, and introduces conceptual overhead. Racket doesn't use the stack, and converts to continuation-passing, which is surprise-surprise *tail recursive* at runtime anyway.
I totally agree with you regarding the conceptual overhead, which is why I'm very surprised that TRMC, or doubly-linked lists, have AFAIK never made it to any Lisp implementation.
-Patrick ____________________ Racket Users list: http://lists.racket-lang.org/users