【发布时间】:2016-01-13 08:01:44
【问题描述】:
所以我正在编写一个方案函数,它接收一个元素和一个列表并返回复制元素的列表,即(replicate 'd '(a b c 1 d)) 应该返回'(a b c 1 d d))。
然而,只要元素不属于列表的一部分,它就会返回原始列表,而当它是元素时,它返回的只是原始列表。我是计划新手,很难找到我的错误所在。非常感谢您的帮助!
(define (replicate elmt set)
(cond((null? set) '())
((member? elmt set)(replicate_helper elmt set))
(else set)))
(define (replicate_helper elmt set)
(cond (eq? (car set) elmt) (cons elmt set)
(else (cons (car set)
(replicate_helper elmt (cdr set))))))
也是会员?是我的函数,当元素在列表中时返回#t,而不在时返回#f。这是它的样子:
(define (member? elmt set)
(cond ((null? set) #f)
((eq? elmt (car set)) #t)
(else(member? elmt (cdr set)))))
【问题讨论】:
标签: list recursion scheme racket replicate