Ich möchte eine Funktion machen, um das N-te erste Element einer Liste zu bekommen.Wie bekomme ich N erstes Element einer Liste
Zum Beispiel:
>>(firsts 3 '(a b c d e))
Rückkehr: (abc)
ich gemacht, dass:
(define (firsts number lst)
(let ((maliste '()))
(if (equal? 0 number)
maliste
(and (set! maliste (cons (car lst) maliste)) (firsts (- number 1) (cdr lst))))))
Aber es funktioniert nicht, ich glaube, ich let verwenden sollte, aber ich Ich weiß nicht wie.
Danke.
Wir durchlaufen nur die Liste, bis die erforderliche Anzahl von Elementen abgeschlossen ist, erstellen eine _new_ Liste, wie wir gehen. Dieses Muster ist so üblich, dass Sie es als Vorlage verwenden können, um viele ähnliche Probleme zu lösen, die eine Liste konsumieren und eine Liste zurückgeben. –