Puisque Linotte est fait pour débuter, pourquoi ne pas faire table rase de conventions arbitraires et, surtout, déroutantes, en matière d'affectation ?
En effet, la plupart des langages de la veine d'Algol, Fortran, C et consorts ont opté pour une syntaxe du genre :
pour affecter à la variable « a » le nombre 1
pour renvoyer vrai si la variable « a » contient le nombre 1, faux sinon
Pourtant, l'élève ou l'étudiant qui fait de l'algèbre, lui, utilisera
soit comme une équation qui dénote le fait, immuable, que la variable « a » vaut 1, soit comme une proposition, immuable toujours, qu'on cherche à confirmer ou infirmer.
En algèbre toujours, pourtant, on dispose depuis toujours d'une notation pour l'affectation, qui a d'ailleurs une portée lexicale, comme beaucoup de langages de programmation :
En Lisp, ça donne :
Traduit en français :
Donc, en Linotte, on pourrait avoir :
On peut aussi permettre l'utilisation de parenthèses :
En effet, la plupart des langages de la veine d'Algol, Fortran, C et consorts ont opté pour une syntaxe du genre :
Code:
a = 1
pour affecter à la variable « a » le nombre 1
Code:
a == 1
pour renvoyer vrai si la variable « a » contient le nombre 1, faux sinon
Pourtant, l'élève ou l'étudiant qui fait de l'algèbre, lui, utilisera
Code:
a = 1
soit comme une équation qui dénote le fait, immuable, que la variable « a » vaut 1, soit comme une proposition, immuable toujours, qu'on cherche à confirmer ou infirmer.
En algèbre toujours, pourtant, on dispose depuis toujours d'une notation pour l'affectation, qui a d'ailleurs une portée lexicale, comme beaucoup de langages de programmation :
Code:
Soit a l'entier 1
Prenons 2 * a + 1
En Lisp, ça donne :
Code:
(let ((a 1))
(+ (* 2 a) 1))
Traduit en français :
Code:
(soit ((a 1))
(+ (* 2 a) 1))
Donc, en Linotte, on pourrait avoir :
Code:
Soit a la valeur 1
Soit a 1
Soit b la valeur a * 2
Soit b a + 1
On peut aussi permettre l'utilisation de parenthèses :
Code:
Soit a la valeur (1)
Soit a (1)
Soit b la valeur (a * 2)
Soit b (a + 1)