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.




list.filter = function(f)
    result = []
    for item in self
        if f(item) then result.push item
    end for
    return result
end function
 
isEven = function(x)
    return x % 2 == 0
end function
 
nums = [1, 2, 3, 4, 5, 6, 7, 9, 12, 15, 18, 21]
print nums.filter(@isEven)