map := (fn array | result := (), for array (v | result = result & (| fn v) ), result), drop := (n arr | arr[range n (len arr)]), take := (n arr | arr[up n]), filter := (predicate arr | arr[map predicate arr]),