6

スキーム/ラケットに残っているリストをローテーションしようとしています。例:(rotate-left'(abc))出力(bca)

これがzeコードです!

(define (rotate-left LIST)
    (if(null? LIST)'()
        (cons(car LIST)(cons(cdr LIST)'())))))

残念ながら、これは同じリストを出力するだけです!簡単な修正になるはずです、そして私は私が近くにいることを知っています...助けてくれてありがとう!

4

3 に答える 3

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)
于 2012-10-24T14:32:44.757 に答える
1

テストケース!テストケース!ここでのチェック期待は、問題を理解するのに役立ち、他の人はあなたが探していたものを理解するのに役立ちます。

私は年を取っていると思います。

于 2012-10-24T16:12:57.757 に答える
-2

あなたは車とcdrを後方に持ってきました!どうぞ :

(define (rotate-left LIST)
    (if(null? LIST)'()
        (cons(cdr LIST)(cons(car LIST)'())))))
于 2012-10-24T09:07:12.003 に答える