Évaluation paresseuse

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

L’évaluation paresseuse (en anglais : lazy evaluation) est une technique d'implantation des programmes récursifs pour laquelle l'exécution d'un bout de code ne se fait pas avant que les résultats de ce bout de code ne soient réellement nécessaires. Le terme paresseux étant connoté négativement en français (il est cependant ici utilisé, comme souvent, en raison d'une traduction littérale de l'anglais lazy), il est peut-être préférable de parler d'évaluation par nécessité (traduction de l'anglais call by need) ou d'évaluation retardée.

Un exemple d’évaluation retardée est la technique de copy on write où le système ne copie pas réellement les données, tant qu'il n'y a pas eu de modification.

Dans un langage comme Haskell, l'évaluation est paresseuse par défaut.

Cette technique peut être utilisée à des fins d'optimisation (éviter de calculer un résultat qui pourrait ne pas être utilisé) mais permet aussi des constructions originales, qui seraient impossibles à envisager sans une telle approche, comme la définition d'une suite infinie. En évaluation immédiate, l'ordinateur tenterait d'évaluer à l'infini et ne terminerait jamais. Avec l'évaluation retardée, seuls les termes de la suite réellement utilisés seront évalués.

Références[modifier | modifier le code]

Voir aussi[modifier | modifier le code]