Task

Select certain elements from an Array into a new Array in a generic way.



To demonstrate, select all even numbers from an Array.

As an option, give a second solution which filters destructively,
by modifying the original Array rather than creating a new Array.




PROC main()
  DEF l : PTR TO LONG, r : PTR TO LONG, x
  l := [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  r := List(ListLen(l))
  SelectList({x}, l, r, `Mod(x,2)=0)
  ForAll({x}, r, `WriteF('\d\n', x))
ENDPROC