Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;; @author Simon Hoyer
- ;; Exkurs: Funktionen höherer Ordnung - Racket / Scheme
- ;; Vertrag: filter: (X -> boolean) listofX -> listofX
- ;; Beschreibung: filter filtert alle Elemente aus einer Liste für die, die boolean Funktion true ergibt.
- (check-expect (filter (lambda (x)(> x 5))(list 1 2 3 4 5 6 7 8)) '(6 7 8))
- ;; Vertrag: map: (X -> X) listofX -> listofX
- ;; Beschreibung: map wendet Funktion auf jedes Element der Liste an
- (check-expect (map (lambda (x)(+ x 2))(list 2 3 8 7)) '(4 5 10 9))
- ;; Vertrag: foldr bzw. foldl: (X Y -> Z) X listofX -> X
- ;; Beschreibung: fold geht die Liste durch wobei hier in dem Beispiel der erste x auf das erste Element
- ;; der Liste zurückgreift und y auf das nächste. (usw)
- ;; Der mittlere formale Parameter ist hierbei die base. Diese base ist der Startwert.
- ;; Beispiel für die Auswertung von foldr (von links nach rechts)
- ;; (foldr (lambda (x y)(+ x y)) 4 '(2 3 4 5))
- ;; ((((4+2)+3)+4)+5)
- ;; Beispiel für die Auswertung von foldl (von rechts nach links)
- ;; (foldr (lambda (x y)(+ x y)) 4 '(2 3 4 5))
- ;; ((((4+5)+4)+3)+2)
- (check-expect (foldr (lambda (x y)(+ x y)) 0 '(2 3 4 5)) 14)
- (check-expect (foldr (lambda (x y)(+ x y)) 9 '(2 3 4 5)) (+ 14 9))
- (check-expect (foldl (lambda (x y)(+ x y)) 0 '(2 3 4 5)) 14)
- (check-expect (foldl (lambda (x y)(+ x y)) 3 '(2 3 4 5)) (+ 14 3))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement