package foo import java.util.*; val d = {(a : Int) -> a + 1} val p = {(a : Int) -> a * 3} val list = ArrayList>(); fun chain(start : Int) : Int { var res = start; for (func in list) { res = (func)(res); } return res; } fun box() : Boolean { if (chain(0) != 0) { return false; } list.add(d); if (list.get(0)(0) != 1) { return false; } list.add(p); if (list.get(1)(10) != 30) { return false; } if (chain(0) != 3) { return false; } list.add({it * it}); list.add({it - 100}); if (chain(2) != -19) { return false; } if (({(a : Int) -> a * a}(3)) != 9) { return false; } return true; }