【发布时间】:2017-03-14 22:31:51
【问题描述】:
我正在尝试编写一个delete! 函数来改变一个列表并从中删除一个指定的值。这是我目前的代码。
(define (extend! l . xs)
(if (null? (cdr l))
(set-cdr! l xs)
(apply extend! (cdr l) xs)))
(define (delete! lis y)
(define returnLis '())
(for-each (lambda(x) (if(not(eq? x y))
(extend! returnLis x))) lis)
returnLis)
我遇到的问题是我试图添加到一个无法在 Scheme 中完成的空列表。
期望的结果:
(删除!'(1 2 3 4 5) 3)
=> (1 2 4 5)
【问题讨论】:
-
您遇到的问题是...?发布一个示例来演示问题以及您所期望的结果。
标签: linked-list scheme filtering mutable r5rs