Outils pour utilisateurs

Outils du site


nsi:terminales:programmation_fonctionnelle:presentation

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
nsi:terminales:programmation_fonctionnelle:presentation [2023/04/18 09:31] – [Premier exemple, l'extérieur agit sur l'intérieur] goupillwikinsi:terminales:programmation_fonctionnelle:presentation [2023/04/18 10:47] (Version actuelle) – [Premier exemple, l'extérieur agit sur l'intérieur] goupillwiki
Ligne 74: Ligne 74:
 >>> ma_fonction(3) >>> ma_fonction(3)
 6 6
 +>>> i = 0
 >>> ma_fonction(3) >>> ma_fonction(3)
 9 9
Ligne 108: Ligne 109:
 ===== Types immuables ===== ===== Types immuables =====
  
-<wrap tip>On rencontre parfois l'anglicisme **immuable**.</wrap>+<wrap tip>On rencontre parfois l'anglicisme **immutable**.</wrap>
  
 En Python, les types ''str'' et ''tuple'' sont **immuables**. En Python, les types ''str'' et ''tuple'' sont **immuables**.
Ligne 135: Ligne 136:
 Avec ce genre de structure, on crée beaucoup de copies mais on garantit l'absence d'effet de bord. De plus, le fait que le texte ne puisse pas être modifié permet d'optimiser l'utilisation de la mémoire. Avec ce genre de structure, on crée beaucoup de copies mais on garantit l'absence d'effet de bord. De plus, le fait que le texte ne puisse pas être modifié permet d'optimiser l'utilisation de la mémoire.
  
-En effet, le type ''list'' est muable et on peut ajouter ou enlever des éléments à une variable de type ''list'', mais cela occasionne des ralentissement car le contenu en mémoire doit se réorganiser à chaque ajout / suppression.+En effet, le type ''list'' est mutable et on peut ajouter ou enlever des éléments à une variable de type ''list'', mais cela occasionne des ralentissement car le contenu en mémoire doit se réorganiser à chaque ajout / suppression.
  
 <WRAP important>**Dans un langage fonctionnel pur, tout est immuable !**</WRAP> <WRAP important>**Dans un langage fonctionnel pur, tout est immuable !**</WRAP>
Ligne 153: Ligne 154:
  
 <code python> <code python>
-def carré(x):+def square(x):
     return x**2     return x**2
 </code> </code>
Ligne 161: Ligne 162:
 <code python> <code python>
 >>> tableau = [1, 7, 5, 22] >>> tableau = [1, 7, 5, 22]
->>> map(tableau, carré)+>>> map(tableau, square)
 [1, 49, 25, 484] [1, 49, 25, 484]
 </code> </code>
  
 <WRAP tip> <WRAP tip>
-Notez bien que quand nous fournissons ''carré'' en argument, nous ne mettons pas les ''()''. ''carré'' sans les ''()'' désigne la fonction elle-même. Quand on ajoute les ''()'', c'est que l'on veut exécuter la fonction.+Notez bien que quand nous fournissons ''square'' en argument, nous ne mettons pas les ''()''. ''square'' sans les ''()'' désigne la fonction elle-même. Quand on ajoute les ''()'', c'est que l'on veut exécuter la fonction.
 </WRAP> </WRAP>
  
Ligne 186: Ligne 187:
 </code> </code>
  
-De la même façon, supposons que je dispose d'un tableau et que je veuille élever tous les éléments du tableau au carré. Si je veux utiliser la méthode précédente, je dois définir une fonction ''carré'' que j'utiliserai ensuite avec ''map''.+De la même façon, supposons que je dispose d'un tableau et que je veuille élever tous les éléments du tableau au carré. Si je veux utiliser la méthode précédente, je dois définir une fonction ''square'' que j'utiliserai ensuite avec ''map''.
  
-Mais je ne veux pas avoir à écrire la fonction de façon habituelle avec ''def carre(x):'' -- de même qu'on ne voulait pas écrire ''3'' dans la variable ''x'' dans l'exemple précédent.+Mais je ne veux pas avoir à écrire la fonction de façon habituelle avec ''def square(x):'' -- de même qu'on ne voulait pas écrire ''3'' dans la variable ''x'' dans l'exemple précédent.
  
 Souvent, si la fonction est à usage unique, on préfère ne pas polluer notre programme avec des noms inutiles et on préfère ne pas donner de nom à la fonction et éviter si possible de passer par une une définition formelle. Souvent, si la fonction est à usage unique, on préfère ne pas polluer notre programme avec des noms inutiles et on préfère ne pas donner de nom à la fonction et éviter si possible de passer par une une définition formelle.
Ligne 211: Ligne 212:
  
 <WRAP tip> <WRAP tip>
-Cette approche est par exemple beaucoup utilisé pour le tri. En effet, les langages disposent en général d'une fonction de tri, mais on veut pouvoir customiser le critère de tri. Pour cela on peut passer une fonction qui se charge de préciser le critère de tri.+Cette approche est par exemple beaucoup utilisée pour le tri. En effet, les langages disposent en général d'une fonction de tri, mais on veut pouvoir customiser le critère de tri. Pour cela on peut passer une fonction qui se charge de préciser le critère de tri.
  
 <code python> <code python>
Ligne 218: Ligne 219:
                ("Alia", "Benala", "14/08/1988")                ("Alia", "Benala", "14/08/1988")
               ]               ]
->>> sort(tableau, key=lambda item:item[0])+>>> sorted(tableau, key=lambda item:item[0])
 [("Alia", "Benala", "14/08/1988"), ("Michelle", "Lepic", "11/11/2001"), ("Paul", "Dupont", "19/08/1986")] [("Alia", "Benala", "14/08/1988"), ("Michelle", "Lepic", "11/11/2001"), ("Paul", "Dupont", "19/08/1986")]
 </code> </code>
nsi/terminales/programmation_fonctionnelle/presentation.1681803084.txt.gz · Dernière modification : de goupillwiki