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 :

  1. Les fonctions
  2. Les macros

Dans ce chapitre, nous allons nous intéresser aux fonctions.

Birthday

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 :

  1. Ajoutes un # (un croisillon) au début
  2. Écris une expression
  3. 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.