public class Lambda2 { /* public static <A> List<A> map(List<? extends A> input, Function<? super A, ? extends A> func){ input.add(func.apply(input.get())); } */ public map(input,func){ input.add(func.apply(input.get())); return map(new List<String>(), func); } } class List<A>{ A get(); void add(A); } class Function<A,B>{ B apply(A a); }