标签: lisp common-lisp
我在其他地方看过这个功能,而且我记得,它有一个标准名称。我无法记住它,并且仔细阅读亚历山大的list.lisp图书馆并没有向我透露任何秘密。
list.lisp
(defun familiar-function (list func) (loop for e in list collect (if (listp e) (familiar-function e func) (funcall func e))))
答案 0 :(得分:5)
看起来像tree-map,也称为maptree:
tree-map
maptree
(familiar-function '(() (3 2 3) (2) (2) (55 22 33)) #'1+) => (NIL (4 3 4) (3) (3) (56 23 34))
如评论中所述,您的方法假设树是正确的列表,并且不将该函数应用于非零cdr单元格,与链接函数相反。
cdr