Recall that the =< operator will change the value of a single entry in a list or matrix by reference (see subsection 4.6.4). This make it efficient when changing many values, one at a time, in a list, as might be done by a program.
Care must be taken, since your intent might be changed when a program is compiled. For example, if a program contains
local a; a := [0,1,2,3,4]; ... a[3] =< 33;
then in the compiled program, a := [0,1,2,3,4] will be replaced by a := [0,1,2,33,4]. To avoid this, you can assign a copy of the list to a; you could write
local a; a := copy([0,1,2,3,4]); ... a[3] =< 33;
Alternately, you could use a command which recreates a list every time the program is run, such as makelist or $, instead of copying a list; a:= makelist(n,n,0,4) or a := [n$(n=0..4)] can also be used in place of a := [0,1,2,3,4].