我正在编写一个带有两个列表的计划程序,并显示列表的并集。这是我的代码。
(define (union a b)
(cond ((null? b) a)
((element? (car b) a)
(union a (cdr b)))
(else (union (cons (car b) a) (cdr b)))))
当我使用(union '(1 2 3) '(2 4 2))
调用方法时,我收到错误消息
Exception: variable element? is not bound.
当我打电话给方法时,我做错了什么?谢谢。
答案 0 :(得分:1)
它只意味着"元素的定义?"找不到。用"成员替换它" (Racket中的内置函数)使其工作:
(define (union a b)
(cond ((null? b) a)
((member (car b) a)
(union a (cdr b)))
(else (union (cons (car b) a) (cdr b)))))
(union '(1 2 3) '(2 4 2))
输出:
'(4 1 2 3)