Infixed assignments: =>, :=, =<

### 11.2.8 Infixed assignments: =>, :=, =<

The infixed operators =>, :=, and =< can all store a value in a variable, but their arguments are in different order. Also, := and =< have different effects when the first argument is an element of a list stored in a variable, since =< modifies list elements by reference. (See section 11.2.10.)

- => is the infixed version of sto, it stores the value in the first argument in the variable in the second argument. Both
  Input:
  4 => a
  and:
  sto(4,a)
  store the value 4 in the variable a.
- := and =< both have a variable as the first argument and the value to store in the variable as the second argument. Both
  Input:
  a := 4
  and:
  a =< 4
  store the value 4 in the variable a.

  However, suppose
  Input:

  A := [0,1,2,3,4]
  B := A

  and you want to change A[3].
  Input:

  A[3] =< 33

  will change both A and B
  Input:

  A, B

  Output:

  [0,1,2,33,4], [0,1,2,33,4]

  Here, A pointed to the list [0,1,2,3,4] and setting B to A, B also pointed to [0,1,2,3,4]. Changing an element of A by reference changes the list that A points to, which B points to.

Note that multiple assigments can be made using sequences or lists. Both
Input:

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

and:

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

assign a the value 1, b the value 2, and c the value 3. If multiple assignments are made this way and variables are on the right hand side, they will be replaced by their values before the assignment. If a contains 5, then
Input:

(a,b) := (2,a)

then b will get the previous value of a, 5, and not the new value of a, 2.