Cours du jour

This commit is contained in:
Némunaire 2012-03-05 13:25:05 +01:00
parent bef50f3f61
commit e74c3a6dc8
3 changed files with 552 additions and 4 deletions

View file

@ -55,9 +55,40 @@ volée.
\section{Pureté}
Une fonction mathématique, sans effet de bord. En lui passant les mêmes
arguments, elle doit toujours renvoyé la même chose quelque soit le contexte.
Au niveau des variables, elles n'existent plus~! il n'y a que des constantes.\\
Étant donné qu'écrire dans un terminal est un effet de bord, l'implémentation
des fonctions interagissant avec des fichiers sont confinées dans des bunkers.
\subsection{Intérêt}
La pureté est essentielle pour le parallélisme. En effet, avec la pureté, on a
pas de problème de concurence d'accès, ...
Par exemple Erlang est parfaitement adapté à ça. Il est d'ailleurs parfaitement
adapté à la distribution qui est prévu dans les primitives du langage.
\paragraph{Sëmantique locale aux fonctions}
Étant donné que les fonctions pures n'ont pas d'effet de bord, il est très
facile de les tester/déboguer.
\paragraph{Preuve de programme}
\section{Évaluation}
\subsection{Strict}
Dans un évaluateur strict (tel que Lisp), il va d'abord évaluer les arguments
de gauche à droite, puis il applique la fonction avec les arguments évalués.
\subsection{Lazy} ou évaluation paresseuse (Haskell).
Les expressions ne sont évaluées que quand on en a besoin.
\section{Typage}
\section{Résumé}
En Haskell, toutes les variables sont typées et la vérification est faite à
l'exécution.