list - 将函数列表应用于普通 lisp 中的列表

标签 list common-lisp higher-order-functions

我有一个函数列表和一个元素列表,我想对所有元素应用所有函数,然后将所有结果列表附加在一起。我是这样做的

(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/

相关文章:

Python 3.5 : slice vs islice vs alternatives? 效率对比

lisp - 将列表列表的元素定义为普通 lisp 中的新变量

haskell - 使用通用元组函数一次多次折叠

具有不接受输入参数类型的通用参数类型的 Swift 高阶函数(Church pair aka cons)

php - 如何在 PHP 中使用 array_filter() 进行函数式编程?

excel - ROBDC SqlSave : How to export data into Excel sheets?

c# - 快速查找排序列表中的项目索引

r - 删除R中多级列表上data.frames中列的属性

common-lisp - 在宏中构建符号时处理可读的情况

list - 普通口齿不清 : How to implement reduce