Common Lisp:一个判断列表是否包含嵌套列表的谓词?

Rog*_*llo 1 lisp common-lisp

如果列表有子列表,我需要一个返回true的谓词,否则返回false.

我写了一个实现它的函数(如下).我想知道这样的谓词是否已经存在?

(defun hasSublistp (lst)
    (cond ((null lst) nil)
          ((listp (first lst)) t)
          (t (hasSublistp (rest lst)))))
Run Code Online (Sandbox Code Playgroud)

use*_*lpa 5

这应该做的伎俩:

? (some #'listp '(1 2 3 4 5))
NIL
? (some #'listp '(1 2 (3 4) 4 5))
T
? (some #'listp '(1 2 (3 4) (4 7) 5))
T
Run Code Online (Sandbox Code Playgroud)


Dan*_*our 5

我认为没有完全符合此目的的功能,但是如何:

(some #'listp my-list)
Run Code Online (Sandbox Code Playgroud)

您可以somehyperspec中找到有关高阶函数的更多信息.