Scala 3 — Book

Что такое функциональное программирование?

Language

Wikipedia определяет функциональное программирование следующим образом:

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

 

В функциональном программировании функции рассматриваются как “граждане первого класса”, что означает, что они могут быть привязаны к именам (включая локальные идентификаторы), передаваться в качестве аргументов и возвращаться из других функций, как и любой другой тип данных. Это позволяет писать программы в декларативном и составном стиле, где небольшие функции объединяются модульным образом.

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

Когда пишется функциональный код, вы чувствуете себя математиком, и как только понимаете парадигму, то хотите писать только чистые функции, которые всегда возвращают значения, а не исключения или null, чтобы можно было комбинировать чистые функции вместе. Ощущение, что вы пишете математические уравнения (выражения), является движущим желанием, заставляющим использовать только чистые функции и неизменяемые значения - это то, что используется в алгебре и других формах математики.

Функциональное программирование - это большая тема, и нет простого способа сжать её всю в одну главу. В следующих разделах будет представлен обзор основных тем и показаны некоторые инструменты, предоставляемые Scala для написания функционального кода.

Contributors to this page: