Common lisp 如何在LISP中找到列表的子列表(每个级别)的数量?

Common lisp 如何在LISP中找到列表的子列表(每个级别)的数量?,common-lisp,Common Lisp,例如,对于列表(A1(B2)(1C4)(D1(6F))((G4)6))=>6快速回答如下: (defun count-sublists (list) (if (listp list) (1+ (loop for el in list sum (count-sublists el))) 0)) 只需在元素上循环并递归地计算所有列表。对不起……答案应该是7,因为列表本身是一个子列表。请在问题中更正它,而不仅仅是评论。如果您花些精力找到答案并展示

例如,对于列表(A1(B2)(1C4)(D1(6F))((G4)6))=>6快速回答如下:

(defun count-sublists (list)
  (if (listp list)
      (1+ (loop for el in list
             sum (count-sublists el)))
      0))

只需在元素上循环并递归地计算所有列表。

对不起……答案应该是7,因为列表本身是一个子列表。请在问题中更正它,而不仅仅是评论。如果您花些精力找到答案并展示您所做的工作,那将是非常棒的。