尝试旋转方案/球拍中的左侧列表。 例如:( rotate-left'(abc))输出(bca)
这是ze代码!
(define (rotate-left LIST)
(if(null? LIST)'()
(cons(car LIST)(cons(cdr LIST)'())))))
不幸的是,这只输出相同的列表!应该是一个简单的解决方案我敢肯定,我知道我很接近......感谢您的帮助!
答案 0 :(得分:8)
@laser_wizard给出的答案不起作用......这是一个正确的实现 - 您必须将第一个cons
替换为append
,以便在端添加第一个元素列表。
(define (rotate-left LIST)
(if (null? LIST)
'()
(append (cdr LIST)
(cons (car LIST)
'()))))
(rotate-left '(a b c))
> '(b c a)
答案 1 :(得分:1)
测试案例!测试用例!这里的检查期望可以帮助您理解问题,其他人可以帮助您了解您的需求。
我想我已经老了。
答案 2 :(得分:-2)
你有车和cdr向后!你走了:
(define (rotate-left LIST)
(if(null? LIST)'()
(cons(cdr LIST)(cons(car LIST)'())))))