Die Funktion hat 1 Parameter, eine ganze Zahl. Zum Beispiel rot-left(2 '(1 2 3 4 5))
sollte (3 4 5 1 2)
zurückgeben und rot-right(2 '(1 2 3 4 5))
sollte (5 4 1 2 3)
zurückgeben.Rekursive Funktionen, die n Elemente einer Liste nach links und rechts in Lisp drehen
Ich habe das versucht ... es funktioniert nicht, aber was es tun soll, ist die letzten n Elemente einer Liste zu einer leeren Liste hinzufügen.
(defun rot_left (n l)
(if (zerop n)
'()
(append (last l)
rot-left ((- n 1) (cdr l)))))
Was haben Sie bisher versucht:
Dann, vorausgesetzt, dass diese Interpretation korrekt ist, können die Funktionen nur durch primitive Operatoren in Common Lisp, ohne die Verwendung von Iteration oder Rekursion geschrieben werden? In StackOverflow schreiben wir keinen Code für Sie. Wir helfen gerne jedem, der festsitzt, aber Sie sollten es zuerst selbst versuchen. Außerdem waren das meine Hausaufgaben im Alter von 13 Jahren. – SZenC
Ich habe das versucht ... es funktioniert nicht, aber es sollte die letzten n Elemente einer Liste zu einer leeren Liste hinzufügen. (defun rot_left (nl) (if (zerop n) ') (anhängen (last l) rot-links ((- n 1) (cdr l))))) –
Bearbeiten Sie nun Ihre Frage, um diese und alles andere einzubeziehen Sie haben versucht, – SZenC