Содержание
- 2. План Функції як об'єкти першого класу (first-class citizens) Лямбда - вирази Замикання Функції вищого порядку, каррінг
- 3. Поняття функціонального програмування Функціональне програмування - розділ дискретної математики і парадигма програмування, в якій процес обчислення
- 4. Характерні риси функціонального програмування Рішення задачі записується як сукупність незалежних від зовнішнього стану функцій Функції як
- 5. Функція як об'єкт першого класу Об'єкт називають «об'єктом першого класу», якщо він: може бути збережений в
- 6. Приклад 1 def add(x,y): return x+y def sub(x,y): return x-y def mul(x,y): return x*y def div(x,y):
- 7. Приклад 1 operations ={ '+' : add, '-' : sub, '*' : mul, '/' : div,
- 8. Приклад 1 first = float(input('First number: ')) operation = input('Operation: ') second = float(input('Second number: '))
- 9. Лямбда вирази Звичайне оголошення функції: def add(x, y): return x + y Використання лямбда - виразу
- 10. Приклад 2 operations ={ '+' : lambda x, y : x+y, '-' : lambda x, y
- 11. Замикання Замикання (closure) У програмуванні - функція, в тілі якої присутні посилання на змінні, оголошені поза
- 12. Приклад 3 def add(x): def two_add(y): return x+y return two_add print(add(402)(45))
- 13. Функції вищого порядку Функція вищого порядку - функція, що приймає в якості аргументів інші функції або
- 14. Приклад 4 def add(x): def two_add(y): return x+y return two_add add_to_ten=add(10) print(add_to_ten(2)) print(add_to_ten(12.5))
- 15. Приклад 5 elem = lambda value, next: {'value': value, 'next': next} to_string = lambda head: ''
- 16. Декоратори Декоратор в Python - функція, яка приймає як параметр іншу функцію (або клас) і повертає
- 17. Приклад 6 def decorator(fn): def decorated_fn(*args, **kwargs): print('Decorated function says:') fn(*args, **kwargs) print() return decorated_fn def
- 18. Приклад 7 def decorator(fn): def decorated_fn(*args, **kwargs): print('Decorated function says:') fn(*args, **kwargs) print() return decorated_fn @decorator
- 19. map, filter, reduce Трьома класичними функціями вищого порядку, що з'явилися ще в мові програмування LISP, які
- 20. Приклад 8 values = [2, 4, 8, 15, 42] for square in map(lambda x: x**2, values):
- 21. Приклад 9 numbers = [3, 2, -1, 0, 15, -8, -7, 3, -3, 8] positive_numbers =
- 22. Приклад 10 from functools import reduce numbers = [3, 2, 1, 8, -3, -2] product =
- 23. Модуль functools Модуль functools містить велику кількість стандартних функцій вищого порядку. Деякі з них : lru_cache
- 24. Приклад 11 from functools import lru_cache @lru_cache(maxsize=None) def fibonacci(index): if index return 1 else: return fibonacci(index
- 25. from functools import partial def add(x,y): return x+y add_to_ten=partial(add,10) print(add_to_ten(2)) print(add_to_ten(12.5)) Приклад 12
- 26. Модуль itertools Модуль itertools містить функції для роботи з итераторами і створення ітераторів. Деякі з них
- 27. Приклад 13 from itertools import product for i in range(1,5): for j in range(1,5): #for i,
- 28. Приклад 14 from itertools import chain for i in chain(range(2), range(3)): print(i)
- 29. Приклад 15 from itertools import permutations, combinations, combinations_with_replacement print(list(permutations('ABC', 2))) print() print(list(combinations('ABC', 2))) print() print(list(combinations_with_replacement('ABC', 2)))
- 30. Приклад 16 from itertools import takewhile, dropwhile numbers = [1, 4, 6, 4, 1] predicate =
- 31. Модуль operator Модуль operator містить функції, які відповідають стандартним операторам.
- 35. Скачать презентацию