Added recursive version of Array.map