Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;===== TD 8 =====
- ;=== primitives ===
- (define valeur ; → atome
- (lambda (arbre) ; arbre non vide
- (car arbre)))
- (define fils-g ; → arbre
- (lambda (arbre) ; arbre non vide
- (cadr arbre)))
- (define fils-d ; → arbre
- (lambda (arbre) ; arbre non vide
- (caddr arbre)))
- (define vide? ; → booleen
- (lambda (arbre) ; arbre
- (null? arbre)))
- (define arbre=? ; → booléen
- (lambda (arbre1 arbre2) ; arbres
- (equal? arbre1 arbre2)))
- (define vide ; → arbre
- '() )
- (define cons-binaire ; → arbre
- (lambda (val fg fd); val atome, fg et fd arbres
- (list val fg fd)))
- (define feuille?
- (lambda (a)
- (and (not(vide? a ))
- (vide? (fils-g a ))
- (vide? (fils-d a )))
- ))
- ;== carre ==
- (define carre
- (lambda (x)
- (* x x)))
- ;== cube ==
- (define cube
- (lambda (x)
- (* x x x)))
- ;== verifie ==
- (define verifie ; --> une liste de nombre paire
- (lambda (l f) ; une liste l et une focntion f
- (if(null? l)
- '()
- (if (f (car l))
- (cons (car l) (verifie (cdr l) f))
- (verifie (cdr l) f)
- )
- )
- ))
- ;=== composition de fonction f(g(x)) ===
- (define comp
- (lambda (f g x)
- (f(g x))
- ))
- ;=== compte nbr de valeur paire dans un arbre ===
- ;=== abs arbre ===
- ; à corriger...
- (define fn1 ; entier
- (lambda (f n x)
- (if (= n 0) x
- (fn1 f (- n 1) (f x ))
- )
- ))
- (define fn2
- (lambda (f n a)
- (lambda (x)
- (if(= n 0) x
- (f (fn2 f(- n 1) x))
- )
- )
- ))
- (define compf2
- (lambda (f g)
- (lambda (x)
- (comp f g x)
- )
- ))
- (define fnf1
- (lambda (f n)
- (lambda (x)
- (if (= n 0)
- x
- ((fnf1 f (- n 1)(f x)))
- )
- )
- ))
- (define absarbre
- (lambda (f n a)
- (if (vide? a)
- n
- (f (valeur a)
- (absarbre f n (fils-g a))
- (absarbre f n (fils-d a))
- )
- )
- ))
- (define nb-paires
- (lambda (a)
- (absarbre (lambda (x y z) (if (even? x) (+ 1 y z) (+ y z))) 0 a)))
- (define fois-deux
- (lambda (a)
- (absarbre (lambda (x y z) (cons-binaire (* 2 x) y z)) (vide) a)
- ))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement