我有一个函数列表和一个元素列表,我想对所有元素应用所有函数,然后将所有结果列表附加在一起。我是这样做的
(defun apply-functions(funcs elements)
(if (null funcs)
nil
(append (mapcar #'(lambda (x) (funcall (car funcs) x)) elements) (apply-functions (rest funcs) elements))))
它按预期工作,但我不喜欢它。有没有更简洁、更简洁的方法?我是 lisp 的新手,但仍在习惯 lispish 的做事风格。
最佳答案
我不知道你是否喜欢 loop
宏(我不想破坏任何人),但试试这个:
(defun apply-functions (fs es)
(loop for f in fs appending (mapcar f es)))
关于list - 将函数列表应用于普通 lisp 中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12937788/