【发布时间】:2017-04-14 00:38:20
【问题描述】:
这段代码将一个列表分成两个大小相等的列表:
(define (split ls)
(if (or (null? ls) (null? (cdr ls)))
(list ls '())
(let ((next (split (cddr ls))))
(list (cons (car ls) (car next))
(cons (cadr ls) (cadr next))))))
我想构建一个代码(define (split size ls)),其中 size 有一个值,例如:0.20、0.50、0.63,它将进入第一个列表的数字(以 % 为单位)。
【问题讨论】:
-
像
split中那样以确定的交替顺序进行拆分是否重要?无法准确实现时,函数如何对数字进行四舍五入有什么要求吗? -
不,当不能精确地达到时,如何四舍五入并不重要。现在我有了保持顺序的拆分示例,我想要另一个示例是元素随机发送到每个列表。所以得到的两个列表总是不同的。
标签: racket