【问题标题】:LISP - How to get the average length for nested lists?LISP - 如何获得嵌套列表的平均长度?
【发布时间】:2023-03-27 14:55:01
【问题描述】:

我有问题。我需要从此列表中获取平均长度:(1 (2 3 4) 5 (6 7) 8 (9))。应该是 2。而且我不知道从哪里开始......

我尝试从(1 (2 3 4) 5 (6 7) 8 (9)) 获取(1 2 3 4 5 6 7 8 9),但失败了,因为(reduce #'append list-name) 不起作用。

我知道如何计算这个,但我需要在 (1 (2 3 4) 5 (6 7) 8 (9)) 中获取所有列表 像这样:

list1 = (1 5 8)
list2 = (2 3 4)
list3 = (6 7)
list4 = (9)

但我不知道怎么做。

你能给我一些帮助吗?

【问题讨论】:

  • 为什么是(1 5 8)1 不是一个列表,所以它没有长度。同样,58。你只剩下(2 3 4)(6 7)(9),平均列表确实正好是 2 个。
  • 谢谢,所以我只需要得到 (2 3 4)、(6 7) 和 (8)。但是怎么做呢?
  • (listp 1) => NIL.
  • 如果 arg 是列表,这给了我 T 或 NIL?我明白了,但仍然不知道如何在列表中获取列表。 (2 3 4)、(6 7) 和 (8) 从 (1 (2 3 4) 5 (6 7) 8 (9))

标签: list nested lisp average clisp


【解决方案1】:
(defun nested-lists-average-length (ls &aux (i 0) (n 0))
    (dolist (a ls (float (/ _______)))
      (if (_______ a) 
        (progn (_______ i) 
               (incf n (_______ a) )))))

Fill ... in ... the ... blanks。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 2022-08-14
    • 1970-01-01
    • 2012-03-18
    相关资源
    最近更新 更多