Der kleine Schemer nur für Abende * & Co.

Ich habe Schwierigkeiten zu verstehen, was mit The Little Schemer's los istevens-only*&co Beispiel auf Seite 145.

Hier ist der Code:

(define evens-only*&co
 (lambda (l col)
   (cond
    ((null? l)
     (col '() 1 0))
    ((atom? (car l))
     (cond
      ((even? (car l))
       (evens-only*&co (cdr l)
                    (lambda (newl product sum)
                      (col (cons (car l) newl)
                           (opx (car l) product)
                           sum))))
      (else
       (evens-only*&co (cdr l)
                    (lambda (newl product sum)
                      (col newl product (op+ (car l) sum)))))))
    (else
     (evens-only*&co (car l)
                  (lambda (newl product sum)
                    (evens-only*&co (cdr l)
                                    (lambda (dnewl dproduct dsum)
                                      (col (cons newl dnewl)
                                           (opx product dproduct)
                                           (op+ sum dsum))))))))))

Die Initialecol kann sein:

(define evens-results
 (lambda (newl product sum)
   (cons sum (cons product newl))))

Was ich nicht verstehe, ist mitl wie'((1) 2 3)geht es gleich ins Finaleelse mit(car l) wie(1) und(cdr l) wie(2 3). Gut, aber ich habe keine Ahnung, was ich tun solldnewl, dproduct, dsum von demnewl, product, sum. Es wäre auch hilfreich, wenn mich jemand darin coachen könnte, wie man DrRacket oder Chez Scheme oder MIT-Scheme für den Betrieb eines Steppers einrichtet.

Aber vielleicht spazz ich zu früh. Soll ein Anfänger, der dies zum ersten Mal liest, diese wilde Fortsetzung wirklich verstehen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage