lisp - 方案错误 "except: misuse of unit import keyword"

标签 lisp scheme racket

我正在编写一个函数,它返回出现在一个列表中而不是另一个列表中的元素。例如,

(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)))))

然后返回一条错误消息“except:滥用单元导入关键字 in: (except (cdr lm) ln)”。

为什么会这样?

最佳答案

看起来您在使用 unit 时遇到了一些问题图书馆有except关键字定义。但是仍然可以将它用作您的函数的名称,所以我猜是其他地方出了问题。如果您提供了您尝试运行的完整代码,就可以说更多。

关于lisp - 方案错误 "except: misuse of unit import keyword",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9338460/

相关文章:

emacs - 如何将 elisp 列表放入 elisp 哈希

list - Guile 方案条件错误 : Wrong type to apply: (1 2 3 4)

java - Common Lisp 是否有类似 java 的 Set 接口(interface)/实现类的东西?

recursion - 逻辑运算符可以使用尾递归吗

scheme - 如何使用 MIT-Scheme 执行 .scm 脚本(在 REPL 之外)?

racket - 你如何制作一个在 Racket 中使用关键字的功能

racket - Racket 文件扩展名的约定是什么?

scope - 如何通过函数调用有效地对动态变量使用 setf?

racket - 懒惰 Racket 中的动态编程

scheme - Scheme 中的收集器函数是如何工作的?