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

### 9.4.12 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.14)

- `=>` 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`