gpt4 book ai didi

list - 检查列表是否包含重复项的谓词

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

我正在尝试编写一个函数,它接受一个列表,如果它包含重复的条目则返回 true,否则返回 false。我知道我应该使用成员。这是我到目前为止的尝试(失败了):

(defun dupl (lst)
(if (null lst) '())
(if ((member (car lst) (cdr lst)) (cons (car lst) (dupes (cdr lst))))
(t (dupl (cdr lst)))))

最佳答案

您的代码中存在一些问题。

  • 第一个if 应该使用return-from 来实际返回值。最好使用 nil 而不是 '()
  • 在第二个 if 中,您尝试使用 cond 语法。
  • 我什至不确定您试图通过 cons 实现什么,但这似乎没有必要。

修复这些后,您的代码将如下所示:

(defun dupl (lst)
(if (null lst) (return-from dupl nil))
(if (member (car lst) (cdr lst))
t
(dupl (cdr lst))))

将两个 if 变成一个 cond 可能更简洁:

(defun dupl (lst)
(cond ((null lst) nil)
((member (car lst) (cdr lst)) t)
(t (dupl (cdr lst)))))

关于list - 检查列表是否包含重复项的谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35110201/

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