I don't understand google's awful implementations. In my code by contrast, a map function looks like this:
public double foo(double x)
{
return x*x;
}
list=Utility.map(this,"foo",list);