print subtract(3, 2) subtract_from_3 = curry(subtract, 3) print subtract_from_3(2) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

print subtract(3, 2) subtract_from_3 = curry(subtract, 3) print subtract_from_3(2)

Поиск

return x + y

 

print subtract(3, 2) subtract_from_3 = curry(subtract, 3) print subtract_from_3(2)

 

print curry(subtract, 3)(2)

 

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

 

Blank:

 

from functional import curry, Blank def subtract(x, y):

return x + y

 

print subtract(3, 2)

 

subtract_2 = curry(subtract, Blank, 2) print subtract_2(3)

 

print curry(subtract, Blank, 2)(3)

 

Заключение

 

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

 

Следует отметить,что итераторы-это практичное продолжение функционального начала в языкеPython.Итераторы по сути позволяют организовать так называемые ленивые вычисления(lazy computations),при которых значения вычисляются только когда они непосредственно требуются.

 

Ссылки по теме

 

Статья Д.Мертцаhttp://www-106.ibm.com/developerworks/library/l-prog.html

 

Часто задаваемые вопросы вcomp.lang.functionalhttp://www.cs.nott.ac.uk/~gmh/faq.html


 


Лекция#4:Объектно-ориентированное

программирование

 

Python проектировался как объектно-ориентированный язык программирования. Это означает(по Алану Кэю,автору объектно-ориентированного языкаSmalltalk),что он построен с учетом следующих принципов:

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 61; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.009 с.)