【发布时间】:2015-05-03 11:59:59
【问题描述】:
示例:(split '(1 2 3 4) '3)
答案应该是:((1 2 3) 4)
函数需要1个列表和1个数字,输出应该是嵌套列表 嵌套列表由“mylist”的所有等于或小于“num”的元素组成,较大的数字应该在列表的右侧。
我试过了,但结果只有一个列表:
(define (split mylist num)
(cond
((null? mylist)'())
((list? (car mylist))(split(car mylist) num))
((> (car mylist) num)(split(cdr mylist) num))
(else(cons (car mylist) (split(cdr mylist) num)))))
【问题讨论】:
-
嗨@Atif,欢迎来到 StackOverflow。您应该将代码缩进四个空格以将其格式化为代码,而不是使用“>”。
-
不清楚这个函数应该做什么,请用文字解释一下——比如要求输出是两个列表还是一个列表和一个数字?
-
它需要一个列表和一个数字,嵌套列表包含小于或等于该数字的所有值,更大的数字将在列表的右侧。
-
@Atif - 在你拨打
(split '(1 2 3 4 5) 3)的情况下会发生什么? -
@Inaimathi 应该是 ((1 2 3) 4 5)