Hum.. la "définition du OU logique".... la définition est claire et impose que chacun des opérande soit un booléen. Elle n'est pas claire lorsque chaque opérande est elle-même un calcul (notre cas).
En l'occurrence, c'est plutôt le fait que le calcul de l'opérande droit n'est pas nécessaire à l'obtention du résultat du OU logique dans le ca où le calcul de l'opérande gauche a donné un résultat vrai.
D'ailleurs, essaie d'écrire une fonction qui réalise la même chose qu'un OU logique (ce comportement paresseux) : tu ne pourras pas (sauf à passer une fonction et l'éxecuter conditionnellement dans la fonction) car lorsque tu passes comme opérande (enfin, là, paramètres de la fonction) tes deux calculs ils seront effectués avant d'être passés à la fonction.
[^] # Re: Normal
Posté par gc . En réponse au message Fonctionnement du OR. Évalué à 2.
En l'occurrence, c'est plutôt le fait que le calcul de l'opérande droit n'est pas nécessaire à l'obtention du résultat du OU logique dans le ca où le calcul de l'opérande gauche a donné un résultat vrai.
D'ailleurs, essaie d'écrire une fonction qui réalise la même chose qu'un OU logique (ce comportement paresseux) : tu ne pourras pas (sauf à passer une fonction et l'éxecuter conditionnellement dans la fonction) car lorsque tu passes comme opérande (enfin, là, paramètres de la fonction) tes deux calculs ils seront effectués avant d'être passés à la fonction.
C'est donc une optimisation dans le langage.