# Infixed assignments: => := =<

### 12.2.8 Infixed assignments: => := =<

The infixed operators =>, :=, and =< can all store a value in a variable, but their arguments are in different order. (See Section 4.4.2 and Section 4.4.3.) 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 12.2.10).

- => is the infixed version of sto, it stores the value in the first argument in the variable in the second argument. Both
  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
  a:= 4
  and:
  a =< 4
  store the value 4 in the variable a.

  However, suppose you have entered:

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

  and you want to change A[3].

  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 after 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 also points to.

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

[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 and you enter:

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

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