I am new to Clojure, but not up to lisp. Several constructive solutions look strange to me - in particular, you need a vector for the function parameters and explicitly request tail calls using recur.
Translating lists to vectors (and vice versa) is a standard operation for the optimizer. The tail can be converted to iteration by overwriting it in an equivalent clojure before compiling to byte code. The syntax [] and recur suggest that none of these optimizations are present in the current implementation.
I need a pointer to where in the implementation I can find any / all conversions from source to source. I don't speak Java very well, so I try to switch to a codebase.
If there is no optimization before functional conversion to JVM bytecode, I would be interested to justify this. Perhaps to speed up compilation?
Thanks.
source
share