Array values can be manipulated as stacks using two operators:
apush
and apop
.
The apush
operator gets an array and a value and appends the
value into the array. Note it has a destructive side-effect in the
array value, and also it returns the modified value:
(poke) var a = [1,2,3] (poke) apush (a, 4) [1,2,3,4] (poke) a [1,2,3,4]
the apop
operators gets an array and removes the last value of
the array. If the given array is empty then E_out_of_bounds
is
raised. As with apush
, the operation has the side effect of
modifying the given array and also it returns the popped element:
(poke) var a = [1,2,3] (poke) apop (a) 3 (poke) apop (a) 2 (poke) apop (a) 1 (poke) apop (a) unhandled out of bounds exception