|
|||||||||||||||||||||||||||||||
![]() |
|
||||||||||||||||||||||||||||||
Le site n'est plus mis a jour actuellement... |
Bilan
TP © snoclub.fr.st
· Posez des questions pendant le cours
· Relisez le cours avant de venir en TP/TD · Apportez le cours en TP (syntaxe), ou consultez-le on-line · Lisez attentivement la feuille qui vous
est remise · Notion de symbole (il faudra que je modifie le cours)
Dorénavant, si je parle de alpha, l'interpréteur
(Donner un nombre à chaque étudiant, qu'il/elle fasse la différence avec son numéro de place et son nom)
[47] la fonction cons
Error : LA has no value
Error : FONCTION has no value Error : CONS has no value
[48] "la fonction cons" "la fonction cons"
[49] (define la 10)
10
[50] (define fonction "bonjour")
"bonjour"
[51] la fonction 'cons
10
"bonjour"
cons
[52]
· Indentez vos programmes · Erreur la plus fréquente : · carré (define carre
(lambda (x)
(* x x) ) )
· racine
(define racine
(lambda (x)
(if (> x 0)
(sqrt x)
0 ) ) )
· echange Les morceaux de la liste qui nous intéressent sont :
car , car du cdr , et cdr du cdr .
Il faut fabriquer une liste, donc utiliser la fonction cons :
(define echange
(lambda (l)
(cons
(car (cdr l))
(cons
(car l)
(cdr (cdr l))
) ) ) )
· ou exclusif a XOR b est vrai si seul l'un des deux est vrai
(define ou-ex
(lambda (a b)
(or (and b1 (not b2))
(and b2 (not b1))
) ) )
· Fibonacci
(define fibo
(lambda (n)
(if (= n 0)
1
(if (= n 1)
2
(+ (fibo (- n 1)) (fibo (- n 2)))
) ) ) )
Corrigé du TP4
· Encore beaucoup de fonc (arg · Indentez · Lisez attentivement les messages d'erreur,
bien que ceux du Scheme que vous avez soient peu informants · Exercices sur les listes
· (cons · '() · (cons · '() · (cons 'poule '()) · ) )
· (cons · 'oie · (cons · 'poule · (cons · (cons 'poule '()) · (cons 'paon '()) · ) ) )
· (cons · 'poule · (cons · 'oie · (cons · 'poule · (cons · (cons · (cons 'poulet '()) · '() · ) · '() · ) ) ) )
· (cons · (cons · (cons 'poule '()) · (cons 'oie '()) · ) · (cons 'paon '()) · ) · Extractions
· (car (cdr (car (cdr (car (cdr · ou · (cadr (cadr (cadr · ou · (cadar (cdadr · ou ... , pas beaucoup d'importance
· (car (car (car · ou · (caaar
· (car (car (cdr (cdr
· (car (car (cdr (car (cdr (car (cdr · fonctions sur les listes
· (define der · (lambda (liste) · (if (null? liste) · '() · (if (null? (cdr liste)) · (car liste) · (der (cdr liste)) · ) ) )
· (define ajout · (lambda (liste) · (if (null? liste) · '() · (cons · (+ (car liste) 10) · (ajout (cdr liste)) · ) ) ) ) · sous-liste des symboles (define symlist (lambda (liste)
(if (null? liste)
'()
(if (symbol? (car liste)) (cons (car liste) (symlist (cdr liste)))
(symlist (cdr liste))
) ) ) )
· n premiers caractères (define ncars (lambda (liste n)
(if (or (= n 0) (null? liste))
'()
(if (string? (car liste)) (cons
(car liste)
(ncars (cdr liste) (- n 1))
)
(ncars (cdr liste) n)
) ) ) )
· nombre d'occurrences (define nbocc
(x liste) (if (null? liste)
0
(if (equal? (car liste) x)
(+ (nbocc x (cdr liste)) 1)
(nbocc x (cdr liste)) )
) ) Source : www.SNOCLUB.fr.st
– Auteur : JM Fouet |
||||||||||||||||||||||||||||||
![]() |
Tous droits réservés
© snoclub 2001-2002 |