Chapitre 6: Les fonctions (Bon anniversaire)
Jusque maintenant, tu as appris comment écrire des expressions en utilisant des opérations comme list
, +
, *
, -
, /
et quote
.
Maintenant, nous allons apprendre comment définir nos propres opérations.
Il y a deux sortes d’expressions :
- Les fonctions
- Les macros
Dans ce chapitre, nous allons nous intéresser aux fonctions.
Pourquoi avons-nous besoin de fonctions ?
Imaginons que tu veuilles connaître ton âge en jours. C’est assez simple non ? Tu dois muliplier ton âge en années par 365, car il y a 365 jours dans une année.
Si tu as 9 ans, ton âge en jours est :
(* 9 365)
Et si tu as un bébé à la maison qui a 1 an et demi (1.5 an), son âge en jours est :
(* 1.5 365)
C’est plutôt embêtant d’écrire à chaques fois ce (* x 365)
. C’est pour cette raison que nous avons besoin des fonctions.
Une fonction est comme une formule que tu peux appliquer à n’importe quoi.
Dans notre cas, la formule de ce calcul est : âge-en-années
multiplié par 365.
Comment définir des fonctions ?
Voici comment on défini la fonction qui calcul l’âge en jours :
#(* % 365)
La structure d’une définition de fonction est la suivante :
- Ajoutes un
#
(un croisillon) au début - Écris une expression
- Dans l’expression, utilises
%
pour remplacer la valeur que tu souhaites faire changer.
Fais attention : le #
doit être collé à l’expression, il ne doit pas y avoir d’espaces entre les deux.
Et comme avec les expressions, nous pouvons donner un nom aux fonctions en utilisant def
:
(def âge-en-jours #(* % 365))
Nous pouvons ensuite appliquer la fonction à n’importe quel nombre :
(âge-en-jours 9)
(âge-en-jours 1.5)
Il est aussi possible d’appliquer une fonction sans lui donner de nom (on appel ça une fonction anonyme) :
(#(* % 365) 12)
«««< HEAD Do you understand what’s going on in the code snippet above? ======= Est-ce que tu comprends ce qui se passe dans le programme ci-dessus ?
Translated 6
Exercices
A. Écris une fonction (appelée heures->minutes
) qui transforme les heures en minutes :
()
Utilises heures->minutes
pour calculer combien il y a de minutes dans 12 heures :
()
Appliques la fonction que tu as défini en #A à 12
, sans utiliser son nom :
()
D. Écris une fonction (appelée minutes->heures
) qui transforme les minutes en heures :
()
E. Utilises minutes->heures
pour calculer combien il y a d’heures dans 6000
minutes :
()
Appliques la fonction que tu as défini en #E à 6000
, sans utiliser son nom :
()
Send us a screenshot with your programs to viebel@gmail.com.