Самый важный вопрос, который я вижу сразу; У Arc есть реальная оптимизация вызова хвоста, а у clojure нет из-за ограничений JVM. AFAIK, это означает, что вы должны отказаться, по крайней мере, от возможности вызывать функции Arc напрямую как методы JVM, а также от невозможности прямого преобразования функций Arc в функции Clojure, что, вероятно, приведет к потере некоторой производительности. 1001 *
Возможно, это означает, что вы не сможете легко создать скомпилированную / эффективную версию Arc, используя обычное замыкание. С другой стороны, «игрушечный» переводчик не должен быть слишком сложным, если вы знаете, что делаете.