ну условие вычислить на этапе раскрытие же не проблема если с ifoм внутри делать, то так и будет, типа (if (eval condition) (list …then…) (list …else…))
Ну да, логично. А как в принципе оператор условия работает на самом низком уровне? Вот в конечно итоге спускаемся до ассемблера, там je/jne, например, как они обрабатываются процессором? Та же проблема, что для if нужен if