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