gpt4 book ai didi

list - Lisp - 在嵌套列表的列表中查找最大深度

转载 作者:太空宇宙 更新时间:2023-11-03 19:04:14 25 4
gpt4 key购买 nike

所以我正在用 Lisp 编写一个语法,想找到该语法树的最大深度。

例如,

(SENTENCE (NOUN-PHRASE (DETERMINER THE) (NOUNPLURAL MEN))
(VERB-PHRASE-PAST
((VERBPAST SAW) (NOUN-PHRASE (DETERMINER THE) (NOUNPLURAL DOGS)))))

最大深度应为 4(句子 -> 动词短语过去 -> 名词短语 -> 限定词 -> the)。
然而,列表长度为 3,并且在扩展内部列表时总是不正确的。

如何编写一个函数来返回这个最大深度(不使用任何外部库)?

最佳答案

(defun max-depth (tree)
(if (atom tree)
0
(1+ (reduce #'max (mapcar #'max-depth tree)))))

您可能需要更改 0 值以满足您的规范。

注意:编辑为使用 REDUCE 而不是 APPLYREDUCE 没有任何列表长度限制。

关于list - Lisp - 在嵌套列表的列表中查找最大深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26007496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com