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?