[英]Rotate a list to the left in Scheme/Racket
试图旋转方案/球拍中的左侧列表。 例如:(rotate-left'(abc))输出(bca)
这是ze代码!
(define (rotate-left LIST)
(if(null? LIST)'()
(cons(car LIST)(cons(cdr LIST)'())))))
不幸的是,这只输出相同的列表! 应该是一个简单的解决方案我敢肯定,我知道我很接近...感谢您的帮助!
@laser_wizard给出的答案不起作用......这是一个正确的实现 - 你必须用一个append
替换第一个cons
来添加列表末尾的第一个元素。
(define (rotate-left LIST)
(if (null? LIST)
'()
(append (cdr LIST)
(cons (car LIST)
'()))))
(rotate-left '(a b c))
> '(b c a)
测试用例! 测试用例! 这里的检查期望会帮助您理解问题,而其他人则可以了解您的需求。
我想我已经老了。
你有车和cdr向后! 干得好 :
(define (rotate-left LIST)
(if(null? LIST)'()
(cons(cdr LIST)(cons(car LIST)'())))))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.