Python/Функциональное программирование на Python: различия между версиями
Содержимое удалено Содержимое добавлено
→Итераторы: уточнение |
Питон -> Python, rq шаблон |
||
Строка 1:
[[Функциональное программирование]] является одной из парадигм, поддерживаемых языком программирования [[Python]]. Основными предпосылками для полноценного функционального программирования в Python являются: [[Функция высшего порядка|функции высших порядков]], развитые средства [[Обработка списков|обработки списков]], [[Рекурсия#Рекурсия в программировании|рекурсия]], возможность организации [[Ленивые вычисления|ленивых вычислений]]. Элементы функционального программирования в
== Возможности ==
=== Определение и использование функции ===
Функция в
<source lang="python">
Строка 37:
=== Списочные выражения ===
Списочные выражения (''list comprehension'', иногда используется термин «списковые включения») — наиболее выразительное из функциональных средств
<source lang="python">
l = [x**2 for x in range(10)]
Строка 44:
=== Встроенные [[Функция высшего порядка|функции высших порядков]] ===
В
==== map() ====
Строка 112:
</source>
Для наиболее распространенных операций в
<source lang="python">
Строка 136:
</source>
В последних версиях
<source lang="python">
Строка 202:
</source>
(Частичное применение функций также можно реализовать с помощью
[[Функциональное программирование на
[[Функциональное программирование на
=== Ленивые вычисления ===
Строка 211:
* простейшие логические операции or и and не вычисляют второй операнд, если результат определяется первым операндом
* [[лямбда-исчисление|лямбда-выражения]]
* определенные пользователем классы с ленивой логикой вычислений<ref name="lazypy">[http://freshmeat.net/projects/lazypy/ Пакет lazypy]</ref> или [[Функциональное программирование на
* [[Python#Генераторы|Генераторы и генераторные выражения]]
* (Python 2.5) if-выражение имеет «ленивую» семантику (вычисляется только тот операнд, который нужен)
Строка 242:
=== Функторы ===
[[Функтор (программирование)|Функторами]] называют объекты, синтаксически подобные функциям, то есть поддерживающие операцию вызова.
Для определения функтора нужно перегрузить оператор <code>()</code> с помощью метода <code>__call__</code>. В
Python функторы полностью аналогичны функциям, за исключением специальных атрибутов
Строка 331:
* {{книга|автор=Mark Pilgrim.|заглавие=Dive Into Python|издательство=Apress|год=2004|isbn=9781590593561|страниц=413|ref=Pilgrim}}. [http://www.diveintopython.net/functional_programming/ Глава о функциональном программировании]{{ref-en}}
{{rq|refless|wikify|sources}}
[[Категория:Python]]
|