首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何删除列表方案中所有重复的元素?

如何删除列表方案中所有重复的元素?
EN

Stack Overflow用户
提问于 2011-04-21 05:58:06
回答 3查看 2.5K关注 0票数 1

我的尝试是,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(define (remove-dup lst)
  (cond ((null? lst) '())
        ((null? (cdr lst)) (car lst))
        ((equal? (car lst) (car (cdr lst))) (remove-dup (cdr lst)))
        (else (cons (car lst) (remove-dup (cdr lst))))
        )

  )

我的清单是(a b c a a c c c ),我想要的是(a b c)。有什么想法吗?

谢谢,

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-21 06:41:21

我会通过循环第二个列表来实现这一点,该列表是您构建的已见元素的列表。如果这是家庭作业,我会觉得很遗憾--理解递归是如何工作的比仅仅得到正确的答案更重要。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(define (remove-dup ls)
  (let loop ((ls ls) (seen '()))
     (cond
       ((null? ls) '())
       ((memq (car ls) seen) (loop (cdr ls) seen))
       (else (cons (car ls) (loop (cdr ls) (cons (car ls) seen))))))

更新了以适应你的评论-这可能不是最干净的解决方案,但应该会让你了解它可能是如何工作的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(define (rdup ls)
  (let loop ((ls ls) (current #f)) ; this is bad coding style, a "magic" variable you don't expect to see in your list
     (cond
       ((null? ls) '())
       ((null? (cdr ls)) (if (eq? (car ls) current) '() ls))
       ((eq? (car ls) (cadr ls)) (loop (cdr ls) (car ls)))
       ((eq? (car ls) current) (loop (cdr ls) current))
       (else (cons (car ls) (loop (cdr ls) (car ls)))))))
票数 2
EN

Stack Overflow用户

发布于 2011-12-28 04:40:48

R5RS + SRFI1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(define (remove-duplicates lst)
    (fold-right (lambda (f r)
             (cons f (filter (lambda (x) (not (equal? x f))) r))) '() lst))
票数 2
EN

Stack Overflow用户

发布于 2014-11-09 04:46:02

使用SRFI1,您可以直接使用delete-duplicatesdelete-duplicates!http://srfi.schemers.org/srfi-1/srfi-1.html#delete-duplicates

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5740147

复制
相关文章
Maven通过命令创建web项目
mvn archetype:create -DgroupId=com.learn -DartifactId=LearnNew -DarchetypeArtifactId=maven-archetype-webapp
程序新视界
2022/11/30
3180
Maven通过命令创建web项目
在idea中创建web项目_idea部署web项目
这个时候给项目命名,我在这里命名为java_web,下面那个可以更改项目存放的路径,我这里放到自定的路径,点击Finish。
全栈程序员站长
2022/08/02
1.6K0
在idea中创建web项目_idea部署web项目
IDEA 创建Maven Web项目时很慢
最近创建web项目,很慢,还会创建失败,忍不住了,苦思冥想排查原因, 最后,终于找到了,是因为maven 没有选择jdk的原因! 气死我了。
无敌小菜鸟
2020/05/09
8700
对路径“xxxxx”的访问被拒绝。
对路径“D:\\Weixin\\WechatWeb\\wapMxApi\\JsonFile\\WaterPrice.json”的访问被拒绝。
全栈程序员站长
2022/09/20
2.7K0
部署docsify项目时出现无法访问README.md
今天在服务器上部署用docsify编写的文档项目,结果发现首页竟然无法显示,提示404。
用户8851537
2021/08/03
1.9K1
拒绝访问磁盘拒绝访问的恢复办法
当磁盘插入电脑中时,如果示“拒绝访问”的信息时,我们首先需要对磁盘进行目录修复操作。插入待修复的磁盘,打开“我的电脑”,找到磁盘所在的盘符。
用户10127983
2022/10/22
3K0
【Tomcat】Linux上Tomcat发布-JavaWeb项目-访问时不通过项目名
一开始自己不知道怎么直接通过域名访问到自己部署的Web项目,发布在Tomcat上的。 因为自己以前写都是后面加了项目名, 然后去百度谷歌,找到了下面的正确方法
谙忆
2021/01/21
1.2K0
【Tomcat】Linux上Tomcat发布-JavaWeb项目-访问时不通过项目名
从拒绝到被拒绝
2021,新的一轮工作季的开始,你投了太多的简历,太多的邮件,太多的尝试,而到头来收获的却是从拒绝到拒绝。
HoneyMoose
2021/05/13
1.1K0
从拒绝到被拒绝
为什么使用了HTTP代理还是被拒绝访问?
既然某乎为我推荐了这个问题,那今天就来简单说说,使用了HTTP代理后,还是拒绝访问,无非以下原因:
阿秋数据采集
2023/05/19
2.1K0
怎么创建web项目_vs怎么创建项目
WTM — Rapid development framework based on dotnet core
全栈程序员站长
2022/11/03
4.1K0
scrapy拒绝访问
运行成功
红目香薰
2022/11/29
2.8K0
scrapy拒绝访问
maven创建web项目
链接:https://my.oschina.net/960823/blog/870511
斯文的程序
2019/11/07
1K0
maven创建web项目
MySql拒绝访问
昨天用phpMyAdmin修改账号密码后,出现了下图的情况 原来,用phpmyadmin链接mysql数据库,并修改mysql数据库的密码。但修改的方式是直接在表里面进行修改保存。没有用sql语句。
smy
2018/04/03
5.8K0
MySql拒绝访问
github部署项目,在线访问
5,关联github仓库,获取到github仓库地址后,将本地仓库与github仓库关联
用户3055976
2019/12/30
9990
github部署项目,在线访问
flutter项目打包web访问
参考文章:https://dart.cn/null-safety/migration-guide
徐建国
2021/11/30
2.4K0
flutter项目打包web访问
Docker部署web项目
  docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
程序员云帆哥
2022/05/12
1.9K0
Docker部署web项目
服务器要删除文件访问被拒绝,删除文件提示:文件夹访问被拒绝 需要来自administrator权限执行操作…
有时候我们在删除一些系统重要文件,或者被保护的文件的时候,会出现对话框,提示我们您需要来自administrator权限才能对此文件夹进行更改,这是什么原因导致的?今天小编就为大家分析下解决办法。
全栈程序员站长
2022/11/17
6K0
服务器要删除文件访问被拒绝,删除文件提示:文件夹访问被拒绝 需要来自administrator权限执行操作…
电脑拒绝访问_添加本地端口拒绝访问win10
1:linux 服务器默认是不允许 root账号进行远程使用winscp,所以我们需要创建一个新的非root用户进行登录
全栈程序员站长
2022/09/30
2.5K0
电脑拒绝访问_添加本地端口拒绝访问win10
通过Jenkins部署java项目
Jenkins大多数情况下都是用来部署Java项目,Java项目有一个特点是需要编译和打包的,一般情况下编译和打包都是用maven完成,所以系统环境中需要安装maven。
端碗吹水
2020/09/23
1.3K0
通过Jenkins部署java项目
通过域名访问Linux云服务器上的java web项目
当有几个项目需要放在云服务器上,直接在nginx配置文件中创建几个虚拟主机,然后需要解析几个二级域名。这种方法比较容易实现些,把所有的java web项目放到一个Tomcat下实现访问。
兮动人
2021/06/11
10.8K0

相似问题

创建虚拟目录时拒绝访问。

15

在通过jenkins localhost tomcat部署时被拒绝访问

12

Maven:无法部署项目,访问被拒绝

33

生成项目时访问被拒绝

31

使用XML文档部署Web项目时,构建服务器上的“访问被拒绝”

39
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文