Common Lisp - 使用函数作为另一个函数的输入

Joh*_*ohn 6 lisp function common-lisp

假设我有一个列表并执行某项操作的函数:

(defun foo(aList)
   (loop for element in aList ...))
Run Code Online (Sandbox Code Playgroud)

但是如果列表是嵌套的,我想在循环执行之前先将它展平,所以我想使用另一个函数(defun flatten(aList))来展平任何列表:

(defun foo(flatten(aList))
   (loop for element in aList ...))
Run Code Online (Sandbox Code Playgroud)

Lisp不喜欢这个.还有另一个直接的方法吗?

Xac*_*ach 5

这是一种方式:

(defun foo (alist)
  (loop for element in (flatten alist) ...)
Run Code Online (Sandbox Code Playgroud)