繁体   English   中英

在Scheme / Racket中向左旋转一个列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM