Continuons notre plongée au coeur de ce nouveau langage qui serait un parfait complément à la programmation parallèle.
F# utilise une évaluation stricte, c'est-à-dire que les opérations sont directement effectuées lorsqu'on les déclare. Imaginons une fonction isEven avec un paramètre de type int qui nous retourne true lorsque la valeur est paire. Si nous lui passons l'expression 3 + 4 comme paramètre, F# va directement évaluer la valeur et passer 7 à la fonction. Cependant, nous avons la possibilité de changer ce comportement et d'utiliser ce qui s’appelle l’évaluation paresseuse (lazy evaluation). Le but de ce mécanisme est d'évaluer la fonction uniquement lorsqu'on en a besoin, donc le plus tard possible. Si on reprend l’exemple ci-dessus avec une évaluation paresseuse, la fonction reçoit 3 + 4 et ne va calculer la somme que lorsqu’elle sera vraiment utile. Pour avoir un fonctionnement d'évaluation paresseuse, il faut utiliser un bloc spécial avec le mot-clé lazy. On informe de cette manière qu'une partie du code devra être exécutée avec le système de lazy evaluation.
Nicolas Biedermann
Cyril Durand