human
Veuillez expliquer ce qu'est "l'évaluation paresseuse"
gpt
Dans la théorie des langages de programmation, l'évaluation paresseuse, ou appel par besoin, est une stratégie d'évaluation qui retarde l'évaluation d'une expression jusqu'à ce que sa valeur soit nécessaire (évaluation non stricte) et qui évite également les évaluations répétées (partage).
Les avantages de l'évaluation paresseuse incluent :
L'évaluation paresseuse est souvent associée à la mémorisation, comme décrit dans Writing Efficient Programs de Jon Bentley. Une fois la valeur d'une fonction calculée pour ce paramètre ou ensemble de paramètres, le résultat est stocké dans une table de consultation indexée par les valeurs de ces paramètres ; la prochaine fois que la fonction est appelée, la table est consultée pour déterminer si le résultat pour cette combinaison de valeurs de paramètres est déjà disponible. Si tel est le cas, le résultat stocké est simplement renvoyé. Si ce n'est pas le cas, la fonction est évaluée et une autre entrée est ajoutée à la table de recherche pour être réutilisée.
L'évaluation paresseuse est difficile à combiner avec des fonctionnalités impératives telles que la gestion des exceptions et les entrées/sorties, car l'ordre des opérations devient indéterminé.
Le contraire de l'évaluation paresseuse est l'évaluation avide, parfois appelée évaluation stricte. L'évaluation hâtive est la stratégie d'évaluation employée dans la plupart des langages de programmation [quantifier].