この関数には1つのパラメータ、整数があります。 たとえば、rot-left(2 '(1 2 3 4 5))
は(3 4 5 1 2)
、rot-right(2 '(1 2 3 4 5))
は(5 4 1 2 3)
を返す必要があります。リストのn個の要素をlispで左右に回転させる再帰関数
私はこれを試しました...それは動作しませんが、それは何をすべきかは、リストの最後のn個の要素を空のリストに追加することです。
(defun rot_left (n l)
(if (zerop n)
'()
(append (last l)
rot-left ((- n 1) (cdr l)))))
:
次に、この解釈が正しいとすると、関数は、反復または再帰を使用せず、唯一のCommon Lispでは、プリミティブの演算子を用いて書き込むことができますか? StackOverflowでは、コードを記述しません。私たちは立ち退かれた人を喜んで助けますが、まず自分自身を試してください。さらに、これは13歳での宿題でした。 – SZenC
これを試しました...うまくいきませんが、リストの最後のn個の要素を空のリストに追加するだけです。 –
これを含めるように質問を編集してください。それ以外は何もしないでください(あなたの質問を編集してください。あなたは試しました – SZenC