Évaluation paresseuse
L’évaluation paresseuse (en anglais : lazy evaluation), appelée aussi appel par nécessité ou évaluation retardée est une technique d'implémentation des programmes récursifs pour laquelle l'évaluation d'un paramètre de fonction ne se fait pas avant que les résultats de cette évaluation ne soient réellement nécessaires. Ces résultats, une fois calculés, sont préservés pour des réutilisations ultérieures.
Dans un langage comme Haskell, l'évaluation est paresseuse par défaut.
Usage
modifierCette 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, le programme tenterait d'évaluer indéfiniment et ne terminerait jamais. Avec l'évaluation retardée, seuls les termes de la suite effectivement utilisés seront évalués et ce au moment où on en a besoin.
Références
modifierBibliographie
modifier- (en) Paul Hudak, « Conception, Evolution, and Application of Functional Programming Languages », ACM Computing Surveys, vol. 21, no 3, , p. 383–385 (lire en ligne)
- (en) John C. Reynolds, Theories of Programming Languages, Cambridge University Press, (ISBN 978-0-521-59414-1, lire en ligne)