В данный момент я пишу руководство по JavaFX для разработчиков Java. Чтобы показать, как передать функцию другой функции, я применил функцию Reduce (), найденную в Effective Java:
function reduce(seq: Integer, f: function(: Integer, : Integer): Integer, init: Integer) {
var result = init;
for (i in seq) {
result = f(i, result);
}
result
}
def nums = [1 .. 10];
println(reduce(nums, function(a: Integer, b: Integer) { a + b }, 0)); // prints 55
println(reduce(nums, function(a: Integer, b: Integer) { a * b }, 1)); // prints 3628800
Теперь мне интересно, не является ли этот пример слишком сложным для тех, кто начинает изучать JavaFX. Учебное пособие предназначено для программистов с глубоким пониманием Java, но я не совсем уверен в полезности этого примера. Есть идеи?