Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Sad (for me) difference: tail call optimization, done automatically in Schemes, unavailable in Clojure. I know of recur and trampoline, but recur does not (I think?) work with mutual recursion and if I wanted to use trampoline, I'd be coding in JavaScript :)

Personally I dislike Clojure's syntax - Scheme's feels more pure, cleaner. It's a bit like PERL vs. Python, a matter of taste largely.



I don't believe recur works with mutual recursion. I wish I understood mutual recursion better, frankly. Got any pointers about how one might use it in practice? In general my Lisp-fu could use a lot of improvement.

I would call it more like Ruby vs. Python — c'mon, perl? that's just mean — but yes, we're quibbling. :)


>Got any pointers about how one might use it in practice?

The meta-circular evaluator is a prime example of mutual recursion. It consists of two functions, eval and apply, which call each other in a circular fashion until a result is reached.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: