Scheme - TD n° 7
19 avril 2001
Récursions sur les listes
Affichage d'un dessin
(define (iota-carre n)
(cond ((= n 0) ())
(else (cons (* n n) (iota-carre (- n 1))))))
Faire (iota-leibniz n) calculant la liste :
| ( (-1)n | ... | 1 | -1 | 1 ) | 2n+1 | 5 | 3 |
(define (iota-leibniz n)
(cond ((= n 0) ())
(else (cons (/ (if (even? n) 1 -1) (+ (* 2 n) 1)) (iota-leibniz (- n 1))))))
Faire (iota-suite u0 n) calculant la liste (u0 u1 u2... un), où un est défini par un = racine carrée(un-1+1).
(define (iota-suite u0 n)
(cond ((= n 0) (list u0))
(else (cons u0 (iota-suite (sqrt (+ u0 1)) (- n 1))))))
Faire (our-reverse l).
(define (our-reverse l)
(cond ((null? l) ())
(else (append (our-reverse (cdr l)) (list (car l))))))
Faire (extrait-impair l) : (extrait-impair '(3 2 4 6 1 9)) --> (3 1 9)
(define (extrait-impair l)
(cond ((null? l) ())
((even? n) (extrait-impair (cdr l)))
(else (cons (car l) (extrait-impair (cdr l))))))
Faire (our-member x l)
(define (our-member x l)
(cond ((null? l) #f)
((equal? x (car l)) #t)
(else (our-member x (cdr l)))))
Faire (nieme l n)
(define (nieme l n)
(cond ((null? l) ())
((= n 1) (car l))
(else (nieme (cdr l) (- n 1)))))
Faire (enleve x l)
(define (enleve x l)
(cond ((null? l) ())
((equal? x (car l)) (enleve x (cdr l)))
(else (cons (car l) (enleve x (cdr l))))))
On copiera le contenu de ce fichier, et on l'insèrera dans la fenêtre Définition de DrScheme, pour en faire une liste l1.
Essayez ces autres fichiers de dessin :
... et regardez les belles images correspondantes.