Don*_*son 6 scheme list racket
试图旋转方案/球拍中的左侧列表.例如:(rotate-left'(abc))输出(bca)
这是ze代码!
(define (rotate-left LIST)
(if(null? LIST)'()
(cons(car LIST)(cons(cdr LIST)'())))))
Run Code Online (Sandbox Code Playgroud)
不幸的是,这只输出相同的列表!应该是一个简单的解决方案我敢肯定,我知道我很接近...感谢您的帮助!
@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)
Run Code Online (Sandbox Code Playgroud)
dav*_*ler -2
你的车和CDR都倒退了!干得好 :
(define (rotate-left LIST)
(if(null? LIST)'()
(cons(cdr LIST)(cons(car LIST)'())))))
Run Code Online (Sandbox Code Playgroud)