2015-12-21 2 views
2

Я программировал R в течение года, и только начинаю учить себя Java. Одна вещь, которую я любил в R, - это семейство функций apply() (например, sapply, mapply, apply и т. Д.).Java-эквивалент применения функций в R

Мне было интересно, есть ли у Java эквивалентные функции, или если кто-то написал их на Java - я могу дать некоторые из них базовый подход, но я не смог бы сделать многое с точки зрения оптимизация, которую они кажутся (например, sapply (FUN, X), кажется намного быстрее, чем для (i in 1: length (X)) FUN (X [i]) во многих случаях).

Если нет, я думаю об этом плохо, например. возможно, вам не нужно применять какую-либо функцию, FUN для каждого элемента вектора часто, поскольку Java объектно-ориентирована, поэтому в типичных проблемах, где вы хотели бы использовать их, Java не лучший выбор, или есть другие способы его приближения?

+1

Возможный дубликат [Java collection/map применить метод эквивалент?] (Http://stackoverflow.com/questions/744435/java-collection-map-apply-method-equivalent) – Seelenvirtuose

+0

ИМХО это не дубликат, потому что сейчас это решение (лямбда-выражения), а 6 лет назад этого не было. – scs

ответ

0

Назад к java 8 java не является функциональным языком.

Функциональный язык - это язык, на котором можно передать функцию в качестве аргумента другой функции.

Введение Lamba expressions решить эту проблему.

Если вы не можете использовать java 8, единственная возможность - создать интерфейс только с одним методом (например, применить) и вручную вызвать метод apply (см., Например, how swing works to handle events like click).

Смежные вопросы