gpt4 book ai didi

list - 方案:从列表中删除重复的号码

转载 作者:行者123 更新时间:2023-12-04 18:13:27 24 4
gpt4 key购买 nike

我编写了这段代码,从给出的参数数量创建了一个列表

(define (create-list . e)
e)

但是我需要它从此块本身内的列表中删除任何重复的数字。

我已经尝试并搜索了数小时,并且没有在其他块上放置数十行代码就找不到解决方案。

例如,假设我的输入是
(create-list . 2 2 3 5 5 )

我需要创建的列表是'(2 3 5)而不是'(2 2 3 5 5)...

数字的顺序无关紧要。

最佳答案

基本上,您需要执行以下操作:

(define (create-list . e) (dedupe e))

我可以想到一种非常简单但可能效率不高的方法:
(define (dedupe e)
(if (null? e) '()
(cons (car e) (dedupe (filter (lambda (x) (not (equal? x (car e))))
(cdr e))))))

如果您无法使用 filter之类的现有功能,则可以自己制作:
(define (my-filter pred ls) 
(cond ((null? ls) '())
((pred (car ls)) (cons (car ls) (my-filter pred (cdr ls))))
(else (my-filter pred (cdr ls)))))

关于list - 方案:从列表中删除重复的号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8382296/

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