Une définition, ça se fait une seule fois : maintenant que tu as dit que x ça valait 3, tu ne va pas dire trois lignes plus loin que ça vaut 4 !! Sale menteur !
Bien sûr on peut avoir d'autres définitions de x dans un autre contexte mais ça c'est acceptable, ce n'est pas vraiment le même x (les définitions sont locales).
Dans les langages de programmation fonctionnelle (Haskell, OCaml, Scala, F#, ...) le signe égal est réservé aux définitions, une fois un nom défini, la valeur désignée ne peut plus changer. Lorsqu'ils ont une notion de "variables" et d'affectation, ces langages utilisent une autre syntaxe que le "=", comme d'ailleurs certains langages impératifs autres que C (Pascal par exemple).
L'emploi d'un "=" pour l'affectation est à mon sens l'un des choix les plus discutable du C, malheureusement hérité par la plupart des langages mainstream.
L'exemple d'erreur fourni n'est pas vraiment convaincant car finalement peu fréquent, c'est plus la perversion de l'égalité mathématique, et le manque de clarté dans le raisonnement qui en résulte chez beaucoup d'étudiants, que je déplore.
[^] # Re: Objectifs du langage ?
Posté par Chaddaï Fouché . En réponse à la dépêche Linotte, la programmation en français en version 1.6. Évalué à 1.
Une définition, ça se fait une seule fois : maintenant que tu as dit que x ça valait 3, tu ne va pas dire trois lignes plus loin que ça vaut 4 !! Sale menteur !
Bien sûr on peut avoir d'autres définitions de x dans un autre contexte mais ça c'est acceptable, ce n'est pas vraiment le même x (les définitions sont locales).
Dans les langages de programmation fonctionnelle (Haskell, OCaml, Scala, F#, ...) le signe égal est réservé aux définitions, une fois un nom défini, la valeur désignée ne peut plus changer. Lorsqu'ils ont une notion de "variables" et d'affectation, ces langages utilisent une autre syntaxe que le "=", comme d'ailleurs certains langages impératifs autres que C (Pascal par exemple).
L'emploi d'un "=" pour l'affectation est à mon sens l'un des choix les plus discutable du C, malheureusement hérité par la plupart des langages mainstream.
L'exemple d'erreur fourni n'est pas vraiment convaincant car finalement peu fréquent, c'est plus la perversion de l'égalité mathématique, et le manque de clarté dans le raisonnement qui en résulte chez beaucoup d'étudiants, que je déplore.
Jedaï