【发布时间】:2018-09-12 04:12:46
【问题描述】:
我正在尝试找到一种将列表分成三部分的方法。我使用了一个辅助函数,参数应该如下:它评估为三个列表的列表,包含 1)列表中的项目小于枢轴,2)列表中的项目等于枢轴,3)列表中大于枢轴的项目。
(define (partition lst item)
(define (partition-iter lst less same greater)
(cond ((null? lst)(list less same greater ))
((< (car lst) item)(partition-iter (cdr lst)
(cons (car lst) less)
same
greater ))
((= (car lst) item)
less
(cons (car lst) same)
(else
(partition-iter (cdr lst) (cons (car lst) greater))))))
(partition-iter lst '() '() '()))
else 子句之前的一切都应该有效,但在那之后我就被卡住了。任何帮助表示赞赏
【问题讨论】:
-
(= ...)术语和else术语应该看起来像(< ...)术语,不同之处在于您使用不同的地方。现在你没有这样做,你的else是(= ...)术语的结果。
标签: list scheme racket partitioning r5rs