### 9.4.13 Les affectations infixées : => := =<

:= => =< sont des opérateurs infixés qui permettent de stocker une valeur dans une variable, mais leurs arguments de => et de := =< ne sont pas dans le même ordre !
De plus := et =< n’ont pas le même effet lorsque le premier argument est un élément d’une liste (ou matrice) contenu dans une variable. En effet, =< modifie lélément d’une liste (ou matrice) par référence (voir 9.4.15)

- => est la version infixée de sto.
  => stocke le premier argument dans la variable donnée comme deuxième argument.
  On tape :
  4=>a
  Ou on tape :
  sto(4,a)
  On obtient :
  4 et la variable a contient 4
- := et =< ont comme arguments, un nom de variable et la valeur à stocker. On tape :
  a:=4
  Ou on tape :
  a=<4)
  On obtient :
  4 et la variable a contient 4
  On tape :
  A:=[0,1,2,3,4]
  B:=A
  puis par exemple pour modifier A[3], on tape :
  A[3]=<33
  puis
  A,B
  On obtient :
  [0,1,2,33,4],[0,1,2,33,4]
  Les variables A et B contiennent toutes les deux la liste [0,1,2,33,4], en effet :
  A:=[0,1,2,3,4] fait pointer A sur la liste [0,1,2,3,4], puis
  B:=A fait pointer B sur A donc sur la liste [0,1,2,3,4],
  A[3]=<33 modifie la liste pointée par A donc modifie la liste [0,1,2,3,4] en la liste [0,1,2,33,4] et donc B est modifié. Il en serait de même si on avait mis B[3]=<33 au lieu de A[3]=<33, les variables A et B contiendraient toutes les deux la liste [0,1,2,33,4].

Remarque
On peut faire plusieurs affectations à la fois en utilisant les séquences ou les listes.
On tape :

[a,b,c]:=[1,2,3]

On obtient :

[1,2,3]
a contient 1, b contient 2 et c contient 3

Ou on tape :

(a,b,c):=(1,2,3)

On obtient :

(1,2,3)
a contient 1, b contient 2 et c contient 3

Attention
Si a contient 5 et que l’on tape :
(a,b):=(2,a)
alors a contient 2 et b contient 5
Si a contient 1 et que l’on tape :
(a,b):=(2,a)
alors a contient 2 et b contient 1
(a,b):=(b,a+b)
alors a contient 1 et b contient 3