Должен ли я использовать функцию или макрос для проверки аргументов в Clojure?

У меня есть группа числовых функций в Clojure, для которых я хочу проверить аргументы. Функции ожидают множество типов аргументов, таких как положительные целые числа, проценты, последовательности чисел, последовательности ненулевых чисел и т. Д. Я могу проверить аргументы любой отдельной функции:

Запись кода проверки прямо в функцию.Написание функции общего назначения, передача ей аргументов и ожидаемых типов.Написание макроса общего назначения, передача ему аргументов и ожидаемых типов.Другие у меня нетЯ думал о.

НемногоЛисп код Ларри Хантер является хорошим примером № 3. (Ищитеtest-variables макрос.)

Моя интуиция заключается в том, что макрос более уместен из-за контроля над оценкой и возможности выполнять вычисления во время компиляции, а не делать все это во время выполнения. Но у меня нетне наткнуться на случай использования кода, который яЯ пишу, что, кажется, требует этого. Я'Мне интересно, стоит ли прилагать усилия для написания такого макроса.

Какие-либо предложения?

Ответы на вопрос(3)

Ваш ответ на вопрос