import system'collections; import system'routines; import extensions; public program() { var partial := (afs,af => (s => afs(af, s))); var fs := (f,s => s.selectBy:(x => f(x)).summarize(new ArrayList()).toArray()); var f1 := (x => x * 2); var f2 := (x => x * x); var fsf1 := partial(fs, f1); var fsf2 := partial(fs, f2); console.printLine(fsf1(new int[]::(2,4,6,8)).toString()); console.printLine(fsf2(new int[]::(2,4,6,8)).toString()) }