Il semble qu'une évaluation paresseuse des expressions puisse faire perdre au programmeur le contrôle de l'ordre dans lequel son code est exécuté. J'ai du mal à comprendre pourquoi cela serait acceptable ou souhaité par un programmeur.
Comment ce paradigme peut-il être utilisé pour construire un logiciel prévisible qui fonctionne comme prévu, alors que nous n'avons aucune garantie quand et où une expression sera évaluée?
head . sort
est O(n)
due à la paresse (pas O(n log n)
). Voir Évaluation paresseuse et complexité temporelle .