Il y a une différence très importante entre les stratégies qui évaluent sous les lambdas/fonctions et celles qui ne le font pas. Les langages de programmation ne le font, dans l'écrasante majorité des cas, pas. Donc quand on dit "strict de gauche à droite" on veut dire qu'on évalue la fonction jusqu'à un lambda, mais pas en dessous, et ensuite les arguments de gauche à droite. Ce n'est pas la même chose que "applicative order" (qui réduit sous les lambdas). Je ne connais pas la terminologie "fully strict".
Par exemple, le programme OCaml suivant :
let make_counter () =
let count = ref (-1) in
fun () -> (incr count; !count)
N'a aucun sens en "applicative order", puisqu'il renvoie toujours 0.
[^] # Re: Pour ceux qui ne sauraient pas ...
Posté par gasche . En réponse à la dépêche Elixir, enfin une syntaxe agréable pour Erlang ?. Évalué à 1.
Il y a une différence très importante entre les stratégies qui évaluent sous les lambdas/fonctions et celles qui ne le font pas. Les langages de programmation ne le font, dans l'écrasante majorité des cas, pas. Donc quand on dit "strict de gauche à droite" on veut dire qu'on évalue la fonction jusqu'à un lambda, mais pas en dessous, et ensuite les arguments de gauche à droite. Ce n'est pas la même chose que "applicative order" (qui réduit sous les lambdas). Je ne connais pas la terminologie "fully strict".
Par exemple, le programme OCaml suivant :
N'a aucun sens en "applicative order", puisqu'il renvoie toujours 0.