kvisaz (kvisaz) wrote,
kvisaz
kvisaz

Category:

Функциональное программирование в Java 8

Пока я вижу из прочитанного, что функциональное программирование не отменяет объектно-ориентированного, а дополняет его, особенно на обработке массивов.

Упрощается внешний вид кода. Как кто-то сказал "писать тяжелее, а читать легче". Вместо цикла со скобками и отступами



Получаем более ровный читабельный код


Смысл примера: есть массив Numbers, из него надо выбрать все числа больше 100 во второй массив.  Чем больше операций, тем нагляднее получается выигрыш при чтении, так как все, что приходится наворачивать в цикле, преобразуется в элегантные цепочки вызываемых функций.

Вычисление факториала для n:

Можно сказать, избавляемся и от записи циклов в явном виде, и от рекурсии. После освоения методов, такие работы с массивами и пишутся, и читаются гораздо быстрее, чем классические варианты (циклы или рекурсия).

Технически, как уверяют адепты функциональщины, их подход еще и лучше параллелится. Но я не нашел пока хорошего короткого примера, который бы наглядно показал ускорение при распараллеливании на разных процессорах. Цикл из первого варианта, увы, по скорости рвет функциональный подход на массивах до миллиона элементов. Разница в сотни раз.

pS: "Распараллеленный поток ожидаемо существенно медленнее для очень коротких операций." (с) https://habrahabr.ru/post/255813/

PPS: на гигантских n - параллельный факториал быстрее обычного в несколько раз. Таким образом, вижу пользу функциональных методов так
1. улучшение читабельности кода
2. ускорение написания алгоритмов для обработки цепочек+массивов
3. хорошее распараллеливание для больших вычислений
Tags: java, javarush
Subscribe

  • Через сто лет нам расскажут про вредителей

    Я благосклонно отношусь к зеленым технологиям, как и к социальным поблажкам - в разумно построенной системе всему найдется место. Другое дело, когда…

  • Все прорывы были сделаны раньше

    Чтобы что-то с небольшим поражающим фактором начало применяться на войне - его следует штамповать сотнями и тысячами. Я 18 лет назад писал про…

  • Овсяша

    Я ошибся с ценой соевого "молока". Не 50, а 80 и то по скидке. Эффект изменений в мозгу отпечатался, потому что появились новые бренды с Краснодара,…

  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 3 comments