import java.util.*;
import java.lang.*;
import java.io.*;
interface Function<I, R> {
R invoke(I input);
}
class Sqrt
implements Function
<Double, Double
> { public static Sqrt instance = new Sqrt();
private Sqrt() { }
}
}
class Ideone {
public static List
<Double
> map
(Function
<Double, Double
> function, List
<Double
> values
) { List<Double> result = new ArrayList<Double>();
result.add(function.invoke(value));
return result;
}
public static void main
(String[] args
) { List<Double> numbers = new ArrayList<Double>();
numbers.add(3.0);
numbers.add(4.0);
numbers.add(5.0);
List<Double> roots = map(Sqrt.instance, numbers);
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbnRlcmZhY2UgRnVuY3Rpb248SSwgUj4gewoJUiBpbnZva2UoSSBpbnB1dCk7Cn0KCmNsYXNzIFNxcnQgaW1wbGVtZW50cyBGdW5jdGlvbjxEb3VibGUsIERvdWJsZT4gewoJcHVibGljIHN0YXRpYyBTcXJ0IGluc3RhbmNlID0gbmV3IFNxcnQoKTsKCglwcml2YXRlIFNxcnQoKSB7IH0KCglwdWJsaWMgRG91YmxlIGludm9rZShEb3VibGUgaW5wdXQpIHsKCQlyZXR1cm4gTWF0aC5zcXJ0KGlucHV0KTsKCX0KfQoKY2xhc3MgSWRlb25lIHsKCXB1YmxpYyBzdGF0aWMgTGlzdDxEb3VibGU+IG1hcChGdW5jdGlvbjxEb3VibGUsIERvdWJsZT4gZnVuY3Rpb24sIExpc3Q8RG91YmxlPiB2YWx1ZXMpIHsKCQlMaXN0PERvdWJsZT4gcmVzdWx0ID0gbmV3IEFycmF5TGlzdDxEb3VibGU+KCk7CgkJZm9yIChEb3VibGUgdmFsdWUgOiB2YWx1ZXMpCgkJCXJlc3VsdC5hZGQoZnVuY3Rpb24uaW52b2tlKHZhbHVlKSk7CgkJcmV0dXJuIHJlc3VsdDsKCX0KCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgkJTGlzdDxEb3VibGU+IG51bWJlcnMgPSBuZXcgQXJyYXlMaXN0PERvdWJsZT4oKTsKCQludW1iZXJzLmFkZCgzLjApOwoJCW51bWJlcnMuYWRkKDQuMCk7CgkJbnVtYmVycy5hZGQoNS4wKTsKCQlMaXN0PERvdWJsZT4gcm9vdHMgPSBtYXAoU3FydC5pbnN0YW5jZSwgbnVtYmVycyk7CgkJZm9yIChEb3VibGUgcm9vdCA6IHJvb3RzKQoJCQlTeXN0ZW0ub3V0LnByaW50bG4ocm9vdCk7Cgl9Cn0=