Вот тут все говорят, что дескать лисп не предназначен для крутых вычислений, что лучше дескать «программа на лиспе напишет программу на Си/Фортране/whatever». Интересно знать, а как это реализуется на практике? Вот, скажем, есть выражение (sin (+ (* x x) 1). Как будет выглядеть макрос, переводящий эту форму в строку «sin(x*x+1)»? Пускай рассматривается коммон лисп и его подмножество: арифметика, векторы (aref должно переводится в сишную индексацию с квадратными скобками), а также функции соответствующие сишному <math.h>.