Я не уверен, что лучше всего работать с функциями, которые не определены на верхнем уровне.
Я создал список лямбда-выражений рабочей лошадки, назовите его *lambdas*
, которые являются производнымииз пользовательских данных ввода.Существует также список *args*
, который предоставляет соответствующие аргументы для каждой лямбды.Я хотел бы превратить каждую лямбду в функцию, скомпилировать ее, применить к соответствующим аргументам и собрать результаты.
В настоящее время я делаю (setf (symbol-value *dummy-fn-name*) (compile nil lambda))
как временное место для хранения каждой функции, затемна (apply (symbol-value *dummy-fn-name*) args)
, чтобы получить каждый результат, но это, вероятно, квалифицируется как хак.Есть ли более прямой способ работы с лямбдами?Функции не должны зависать после того, как они apply
-ед.