Ответ Михала уже на месте, но следующий альтернативный подход может быть полезен в подобных ситуациях, когда вы хотите использовать макрос в качестве функции:
(reduce #(and %1 %2) [... sequence of bools ...])
В основном вы простооберните макрос в анонимную функцию.
Есть несколько веских причин, чтобы рассмотреть этот подход:
- В некоторых ситуациях удобная функция, такая как
some
или every?
не существует - Вы можете получить более высокую производительность (вероятно, в будущем уменьшение может быть получено за счет очень хороших оптимизаций, например, применения функции непосредственно к вектору, а не преобразования вектора в последовательность)