Ich habe Probleme, eine Funktion in Schläger zu schreiben, die eine andere Funktion übernehmen soll, wie es zunächst Parameter ist und eine Liste als zweites.Übergeben eines Parameters rekursiv in Racket
Alles scheint gut auf dem ersten Aufruf der Funktion zu gehen, aber wenn ich versuche, es rekursiv als Parameter mit der Funktion aufzurufen, es Parameter an die Funktion fehlt. Ich möchte, dass diese Parameterfunktion als Funktion bei der Rekursion übergeben wird, aber für die Auswertung an anderen Stellen in der Definition verwendet wird. Jede Hilfe würde sehr geschätzt werden.
(define apply-to-pairs
(lambda (arg1 arg2)
(if (or (equal? (length arg2) 0)
(equal? (length arg2) 1))
'()
(cons (arg1 (car arg2) (car (cdr arg2)))
(apply-to-pairs (arg1 (cdr (cdr arg2))))))))
Dies ist mein Code und es kompiliert gut, aber wenn der rekursive Aufruf anwenden zu Paaren wird das Programm will Parameter für arg1 durchgeführt, während ich es nur wollen, wie die Funktionsdefinition übergeben werden, um es in so kommt . Ich bekomme dort Fehler 'erwartet 2 Parameter, aber nur 1 gefunden', weil es (cdr (cdr arg2))
als ein Argument zu suchen, während ich meine, dass der zweite Parameter für den rekursiven Aufruf sein.
Sie sind ein Leben genießen. Ich danke dir sehr. Neu ist die Programmierung in Racket und die Formatierung ist ein sehr guter Rat, an dem ich arbeiten werde. Danke noch einmal. – Cheme