0
我正在写一个函数,它返回出现在一个列表中而不出现在另一个列表中的元素。例如,方案错误“除了:误用单位导入关键字”
(except '(a b c) '(a d b e f))
将返回'(c)
。第一个参数可以是一个原子,并且都假定为平坦的。这里是我的代码:
(define (except lm ln)
(cond ((null? ln) lm)
((not (list? lm))
(cond ((in? lm ln) '())
(#t lm)))
((null? lm) '())
((in? (car lm) ln) (except (cdr lm) ln))
(#t (cons (car lm) (except (cdr lm) ln)))))
然后返回一个错误说: “除非:(除(CDR LM)LN):在单位进口关键词的滥用”。
为什么会发生这种情况?
嗨,谢谢你的帮助。实际上,这是我启动DrRacket后输入的所有代码,所以我也感到困惑。 – goldfrapp04 2012-02-18 18:52:09
准确地*知道您键入的位置是重要的:在顶部定义窗口还是在底部交互窗口中?在添加之前知道是否有任何文本也很重要(例如,一些'#lang'行)?最后,知道你的语言设置(两者)是很重要的。但是SO不是真正的支持论坛,所以最好在[邮件列表](http://racket-lang.org/community.html)或IRC(#racket)上提问。 – 2012-02-18 22:44:24