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.




func Array.Filter(pred) {
    var arr = []
    for x in this when pred(x) {
        arr.Add(x)
    }
    arr
}
 
var arr = [1..20].Filter(x => x % 2 == 0)
print(arr)