-Problème 0 : Implémentez une fonction sum-is-ten?
telle que lorsqu'elle
est appliquée à une liste d'entiers l
, sum-is-ten? l
est égale à #t
si la somme de tous les éléments de la liste est égale à 10, sinon elle est
égale à #f
.
Exemples de résultats attendus :
> (sum-is-ten? '(1 2 3 4 5))
#f
> (sum-is-ten? '(1 2 3 4))
#t
-Problème 1 : Implémentez une fonction twins?
qui, appliquée à une paire
p
, donne #t
si les deux éléments de la paire sont égaux, sinon elle
donne #f
.
Exemples de résultats attendus :
> (load "matches.rkts")
> (twins (cons 1 2))
#f
> (twins (cons 2 2))
#t
add-first-last
qui :
- Lorsqu'elle est appliquée à la liste vide, elle renvoie 0.
- Appliquée à une liste de longueur comprise entre 1 et 4, elle renvoie la somme de son premier et de son dernier élément.
- Lorsqu'elle est appliquée à une liste de longueur supérieure à 4, elle
renvoie
"List is too big !"
. Exemples de résultats attendus :> (add-first-last '()) 0 > (add-first-last '(1)) 2 > (add-first-last '(1 2)) 3 > (add-first-last '(1 2 3)) 4 > (add-first-last '(1 2 3 4)) 5 > (add-first-last '(1 2 3 4 5)) "List is too big!"
-Problème 2 : Implémentez une fonction sum-or-prod
qui :
- Appliquée à une liste dont le premier élément est égal à 0, elle retourne la somme du reste de la liste.
- Lorsqu'elle est appliquée à une liste dont le premier élément est égal à 0, elle retourne la somme du reste de la liste. premier élément est 1, elle retourne le produit du reste de la liste.
- Sinon, il renvoie
"Try again!"
. Exemples de résultats attendus :> (sum-or-prod '(0 2 3 4)) 9 > (sum-or-prod '(1 2 3 4)) 24 > (sum-or-prod '(2 2 3 4)) "Try again!"
-Problème 4 : Implémentez une fonction two-consecutive
qui lorsqu'on lui
donne une liste l
, elle retourne #t
si l
contient deux occurrences
contiguës de la même valeur, sinon elle retourne #f
. Exemples de résultats
attendus :
> (two-consecutive '(1 2 3 4 5))
#f
> (two-consecutive '(1 2 3 3 4))
#t