В чистых языках функционального программирования, таких как Haskell
, сочетание чистоты и функционального программирования обеспечивает хорошие свойства, а именно то, что все функции не имеют побочных эффектов, поэтому легче рассуждать, абстрагироваться, отлаживать, тестировать и т. Д. c.
Однако мне интересно, какова цель конструкций функционального программирования в многопарадигмальных языках, которые в основном не работают. Например, в Python
есть такие вещи, как map
, filter
, lambda
, reduce
, но большинство из них считаются «не-Pythoni c» (в отличие от понимания списков, которые могут быть считается функциональным я думаю). Функции могут считаться объектами в python
, но, кроме того, это похоже на язык OOP.
Даже в таких языках, как Scala
, нет никакой гарантии, что функция будет чистой / функциональный, и он может быть в стиле OOP (как бы он ни был, когда вы загружаете библиотеку java
). Вам нужно будет прочитать каждую функцию, чтобы определить, чистая она или нет.
Итак, мой вопрос остается: какова цель конструкций FP в многопарадигмальных языках?