Skip to content

Commit 0a063e2

Browse files
Update Functional.md
1 parent 0ecba05 commit 0a063e2

File tree

1 file changed

+159
-0
lines changed

1 file changed

+159
-0
lines changed

Courses/Functional.md

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,162 @@
2929
- [Асинхронная композиция функций](https://youtu.be/3ZCrMlMpOrM)
3030
- Примеры кода: https://github.com/HowProgrammingWorks/AsyncCompose
3131
- [Принцип подстановки Барбары Лисков](https://youtu.be/RbhYxygxroc)
32+
33+
# Functional programming (таймкоды)
34+
## [Функции, лямбды (стрелочные функции), контексты, замыкания в JavaScript](https://youtu.be/pn5myCmpV2U)
35+
- [00:00:00 Введение ](https://youtu.be/pn5myCmpV2U?t=0)
36+
- [ 00:11:22 Функция объявление (Declaration)](https://youtu.be/pn5myCmpV2U?t=682)
37+
- [ 00:12:46 Функция выражение (Expression)](https://youtu.be/pn5myCmpV2U?t=766)
38+
- [ 00:16:07 Лямбда-выражение (Lambda expression) или функция-стрелка (Arrow function) ](https://youtu.be/pn5myCmpV2U?t=967)
39+
- [ 00:16:43 Лямбда-функция (Lambda function) ](https://youtu.be/pn5myCmpV2U?t=1003)
40+
- [ 00:18:45 Область видимости (Scope)](https://youtu.be/pn5myCmpV2U?t=1125)
41+
- [ 00:25:00 Функции, как абстракции](https://youtu.be/pn5myCmpV2U?t=1500)
42+
- [ 00:26:43 Методы функции (name, length, toString( ) )](https://youtu.be/pn5myCmpV2U?t=1603)
43+
- [ 00:31:26 Значения по умолчанию у функции ](https://youtu.be/pn5myCmpV2U?t=1886)
44+
- [ 00:36:46 Rest-оператор (...args)](https://youtu.be/pn5myCmpV2U?t=2206)
45+
- [ 00:41:49 Способ определения функции, через new Function](https://youtu.be/pn5myCmpV2U?t=2509)
46+
- [ 00:44:46 Функции внутри объекта](https://youtu.be/pn5myCmpV2U?t=2686)
47+
- [ 00:50:42 Обращение к полям объекта из привязанной функции, через this](https://youtu.be/pn5myCmpV2U?t=3042)
48+
- [ 00:55:24 История синтаксиса создания контекстов, через самовызывающиеся функции ( IIFE)](https://youtu.be/pn5myCmpV2U?t=3324)
49+
- [ 00:58:30 Методы функции, наследуемой от объекта (call, apply)](https://youtu.be/pn5myCmpV2U?t=3510)
50+
- [ 01:00:53 Комментирование функций](https://youtu.be/pn5myCmpV2U?t=3653)
51+
- [ 01:01:27 Задание декомпозиции функции](https://youtu.be/pn5myCmpV2U?t=3687)
52+
- [ 01:04:24 Замыкание: context ](https://youtu.be/pn5myCmpV2U?t=3864)
53+
- [ 01:08:41 Замыкание: chainning ](https://youtu.be/pn5myCmpV2U?t=4121)
54+
- [ 01:11:55 Замыкание: summator ](https://youtu.be/pn5myCmpV2U?t=4315)
55+
- [ 01:14:16 Замыкание: recursion](https://youtu.be/pn5myCmpV2U?t=4456)
56+
## [Частичное применение и каррирование в JavaScript ( Partial application )](https://youtu.be/ND8KQ5xjk7o)
57+
- [00:00:00 Замыкание ](https://youtu.be/ND8KQ5xjk7o?t=0)
58+
- [ 00:04:54 Лямбда- функция ](https://youtu.be/ND8KQ5xjk7o?t=294)
59+
- [ 00:06:06 Метод bind ](https://youtu.be/ND8KQ5xjk7o?t=366)
60+
- [ 00:08:30 Абстрагированный пример функции ](https://youtu.be/ND8KQ5xjk7o?t=510)
61+
- [ 00:13:42 Абстрагированный пример функции (расширение) ](https://youtu.be/ND8KQ5xjk7o?t=822)
62+
- [ ------------------------------------------ Рекурсивное частичное применение ( Currying ) ------------------------------------------](https://youtu.be/ND8KQ5xjk7o?t=0)
63+
- [ 00:15:47 Неправильная реализация каррирования ](https://youtu.be/ND8KQ5xjk7o?t=947)
64+
- [ 00:22:22 Правильная реализация каррирования ](https://youtu.be/ND8KQ5xjk7o?t=1342)
65+
- [ 00:28:54 Правильная реализация каррирования (расширение)](https://youtu.be/ND8KQ5xjk7o?t=1734)
66+
- [ ------------------------------- Объединение из нескольких функций одной ( Composition ) --------------------------------](https://youtu.be/ND8KQ5xjk7o?t=0)
67+
- [ 00:31:41 Функциональные абстракции (superposition)](https://youtu.be/ND8KQ5xjk7o?t=1901)
68+
- [ 00:38:02 Функциональные абстракции, с сохранением выражений (composition)](https://youtu.be/ND8KQ5xjk7o?t=2282)
69+
- [ 00:45:05 Композиция с 2 функциями](https://youtu.be/ND8KQ5xjk7o?t=2705)
70+
- [ 00:46:05 Композиция с n - функциями, при помощи метода reduce](https://youtu.be/ND8KQ5xjk7o?t=2765)
71+
- [ 00:51:25 Композиция с n - функциями, при помощи цикла ](https://youtu.be/ND8KQ5xjk7o?t=3085)
72+
- [ 00:54:29 Композиция с n - функциями, при помощи рекурсии](https://youtu.be/ND8KQ5xjk7o?t=3269)
73+
- [ 00:57:40 Композиция асинхронных функций ](https://youtu.be/ND8KQ5xjk7o?t=3460)
74+
- [ 01:01:27 Обобщение](https://youtu.be/ND8KQ5xjk7o?t=3687)
75+
## [Функции высшего порядка, колбеки, события на JavaScript (HigherOrderFunctions, callbacks, events)](https://youtu.be/1vqATwbGHnc)
76+
- [00:00:00 Определение ](https://youtu.be/1vqATwbGHnc?t=0)
77+
- [ 00:02:03 Математическая функция ](https://youtu.be/1vqATwbGHnc?t=123)
78+
- [ 00:05:57 Функция обратного вызова (callback) ](https://youtu.be/1vqATwbGHnc?t=357)
79+
- [ 00:09:33 Замыкание ](https://youtu.be/1vqATwbGHnc?t=573)
80+
- [ 00:10:51 Цепочка вызовов ](https://youtu.be/1vqATwbGHnc?t=651)
81+
- [ 00:12:40 Сохранение кэша с помощью замыкания](https://youtu.be/1vqATwbGHnc?t=760)
82+
- [ 00:18:29 Добавление функции поведение логирования](https://youtu.be/1vqATwbGHnc?t=1109)
83+
- [ 00:21:45 Обобщение ](https://youtu.be/1vqATwbGHnc?t=1305)
84+
- [ ---------------------------------- Применение функций высшего порядка ---------------------------------------------------](https://youtu.be/1vqATwbGHnc?t=0)
85+
- [ 00:22:45 Сallback](https://youtu.be/1vqATwbGHnc?t=1365)
86+
- [ 00:25:32 Сallback асинхронной функции считывание файла](https://youtu.be/1vqATwbGHnc?t=1532)
87+
- [ 00:28:36 Сallback именованный](https://youtu.be/1vqATwbGHnc?t=1716)
88+
- [ 00:33:01 Сallback-timer ](https://youtu.be/1vqATwbGHnc?t=1981)
89+
- [ 00:36:20 Сallback-timer-curry](https://youtu.be/1vqATwbGHnc?t=2180)
90+
- [ 00:38:59 Listener](https://youtu.be/1vqATwbGHnc?t=2339)
91+
- [ 00:41:10 Listener-timer](https://youtu.be/1vqATwbGHnc?t=2470)
92+
- [ 00:46:59 Event](https://youtu.be/1vqATwbGHnc?t=2819)
93+
- [ 00:53:45 Event-imitter ](https://youtu.be/1vqATwbGHnc?t=3225)
94+
- [ 00:57:48 Deferred object (отложенный объект)](https://youtu.be/1vqATwbGHnc?t=3468)
95+
- [ 01:01:31 Errors](https://youtu.be/1vqATwbGHnc?t=3691)
96+
## [Примеси, обертки, декораторы, мемоизация в JavaScript (Wrappers)](https://youtu.be/oRQ0kQr1N-U)
97+
- [00:00:00 Синхронная функция-обертка ](https://youtu.be/oRQ0kQr1N-U?t=0)
98+
- [ 00:02:55 Синхронная универсальная функция-обертка ](https://youtu.be/oRQ0kQr1N-U?t=175)
99+
- [ 00:08:28 Асинхронная универсальная функция-обертка ](https://youtu.be/oRQ0kQr1N-U?t=508)
100+
- [ 00:15:50 Синхронная функция-обертка, которая добавляет поведение (timeout)](https://youtu.be/oRQ0kQr1N-U?t=950)
101+
- [ 00:22:45 Асинхронная функция-обертка, которая добавляет поведение (timeout)](https://youtu.be/oRQ0kQr1N-U?t=1365)
102+
- [ 00:25:38 Функция-обертка, которая ограничивает вызов функции до одного вызова (once) ](https://youtu.be/oRQ0kQr1N-U?t=1538)
103+
- [ 00:27:36 Функция-обертка, которая ограничивает вызов функции до n-го вызова (limit)](https://youtu.be/oRQ0kQr1N-U?t=1656)
104+
- [ 00:29:50 Функция-обертка, которая отменяет вызов функции (cancel)](https://youtu.be/oRQ0kQr1N-U?t=1790)
105+
- [ 00:32:29 Функция-обертка с методами timeout, limit, cancel](https://youtu.be/oRQ0kQr1N-U?t=1949)
106+
- [ 00:39:03 Функция-обертка с методами timeout, limit, cancel (оптимизированная)](https://youtu.be/oRQ0kQr1N-U?t=2343)
107+
- [ 00:42:28 Функция-обертка, которая ограничивает один вызов за 200 мс (throttle)](https://youtu.be/oRQ0kQr1N-U?t=2548)
108+
- [ ----------------------------------------------------------- Примеси (Mixins) ---------------------------------------------------------------](https://youtu.be/oRQ0kQr1N-U?t=0)
109+
- [ 00:45:47 Примесь поля через точку ](https://youtu.be/oRQ0kQr1N-U?t=2747)
110+
- [ 00:51:35 Примесь поля через функцию extend](https://youtu.be/oRQ0kQr1N-U?t=3095)
111+
- [ 00:57:35 Примесь поля через object.assign( )](https://youtu.be/oRQ0kQr1N-U?t=3455)
112+
- [ 00:59:18 Примесь поведения ](https://youtu.be/oRQ0kQr1N-U?t=3558)
113+
- [ 01:02:23 Примесь изменения класса](https://youtu.be/oRQ0kQr1N-U?t=3743)
114+
- [ --------------------------------------------------- Мемоизация (Memoization) ---------------------------------------------------](https://youtu.be/oRQ0kQr1N-U?t=0)
115+
- [ 01:06:50 Определение](https://youtu.be/oRQ0kQr1N-U?t=4010)
116+
- [ 01:07:30 Реализация простой мемоизации ](https://youtu.be/oRQ0kQr1N-U?t=4050)
117+
- [ 01:14:43 Реализация простой мемоизации с проверкой скорости ](https://youtu.be/oRQ0kQr1N-U?t=4483)
118+
- [ 01:20:43 Удаление накопленного кэша ](https://youtu.be/oRQ0kQr1N-U?t=4843)
119+
- [ 01:25:35 Асинхронная мемоизация ](https://youtu.be/oRQ0kQr1N-U?t=5135)
120+
- [ 01:31:10 Преобразование аргументов и ключей в hash-функцию](https://youtu.be/oRQ0kQr1N-U?t=5470)
121+
- [ 01:33:32 Реализация сложной мемоизации](https://youtu.be/oRQ0kQr1N-U?t=5612)
122+
## [Чеининг функций и объектов, обработка ошибок в JavaScript](https://youtu.be/PfuEfIiLX34)
123+
- [00:00:00 Введение ](https://youtu.be/PfuEfIiLX34?t=0)
124+
- [ 00:01:10 Чеининг через синтаксис вызова функций ](https://youtu.be/PfuEfIiLX34?t=70)
125+
- [ 00:02:12 Prototype ](https://youtu.be/PfuEfIiLX34?t=132)
126+
- [ 00:05:45 Сlass](https://youtu.be/PfuEfIiLX34?t=345)
127+
- [ 00:06:11 Functor](https://youtu.be/PfuEfIiLX34?t=371)
128+
- [ 00:11:54 Mutable](https://youtu.be/PfuEfIiLX34?t=714)
129+
- [ 00:16:34 Iterator](https://youtu.be/PfuEfIiLX34?t=994)
130+
- [ 00:26:18 Promise ](https://youtu.be/PfuEfIiLX34?t=1578)
131+
- [ 00:26:35 Test](https://youtu.be/PfuEfIiLX34?t=1595)
132+
- [ 00:37:08 Compare ](https://youtu.be/PfuEfIiLX34?t=2228)
133+
- [ 00:39:45 Benchmark](https://youtu.be/PfuEfIiLX34?t=2385)
134+
- [ 00:40:48 Запуск и анализ тестов ](https://youtu.be/PfuEfIiLX34?t=2448)
135+
- [ ---------------------------------------------------- Обработка ошибок --------------------------------------------------](https://youtu.be/PfuEfIiLX34?t=0)
136+
- [ 01:03:48 Первый способ возвращение ошибок в синхронном коде ](https://youtu.be/PfuEfIiLX34?t=3828)
137+
- [ 01:09:24 Второй способ возвращение ошибок в синхронном коде ](https://youtu.be/PfuEfIiLX34?t=4164)
138+
- [ 01:12:26 Возвращение ошибок в асинхронном коде ](https://youtu.be/PfuEfIiLX34?t=4346)
139+
- [ 01:16:14 Корректное возвращение ошибок ](https://youtu.be/PfuEfIiLX34?t=4574)
140+
- [ 01:20:03 Обработка ошибок c promise ](https://youtu.be/PfuEfIiLX34?t=4803)
141+
- [ 01:23:58 Обработка ошибок c async-await](https://youtu.be/PfuEfIiLX34?t=5038)
142+
## [Функциональное программирование на JavaScript](https://youtu.be/0JxSs_GcvbQ)
143+
- [](https://youtu.be/0JxSs_GcvbQ?t=0)
144+
## [Функциональные объекты, функторы и монады в JavaScript](https://youtu.be/3Z7f0Gi8pxw)
145+
- [00:00:00 Определение функтора ](https://youtu.be/3Z7f0Gi8pxw?t=0)
146+
- [ 00:01:40 Функтор из прототипа ](https://youtu.be/3Z7f0Gi8pxw?t=100)
147+
- [ 00:08:17 Функтор из прототипа (упрощенный) ](https://youtu.be/3Z7f0Gi8pxw?t=497)
148+
- [ 00:09:14 Функтор из замыкания ](https://youtu.be/3Z7f0Gi8pxw?t=554)
149+
- [ 00:11:49 Функтор из замыкания с тернарным оператором](https://youtu.be/3Z7f0Gi8pxw?t=709)
150+
- [ 00:12:44 Аппликативный функтор из прототипа ](https://youtu.be/3Z7f0Gi8pxw?t=764)
151+
- [ 00:18:08 Аппликативный функтор из замыкания (монада)](https://youtu.be/3Z7f0Gi8pxw?t=1088)
152+
- [ 00:23:11 Пример применения монады ](https://youtu.be/3Z7f0Gi8pxw?t=1391)
153+
- [ 00:28:37 Функциональный объект ](https://youtu.be/3Z7f0Gi8pxw?t=1717)
154+
- [ 00:39:44 Пример применения функционального объекта](https://youtu.be/3Z7f0Gi8pxw?t=2384)
155+
- [ 00:45:27 Обобщение](https://youtu.be/3Z7f0Gi8pxw?t=2727)
156+
## [Отмена асинхронных операций, cancellable callback and Promise в JavaScript](https://youtu.be/T8fXlnqI4Ws)
157+
- [](https://youtu.be/T8fXlnqI4Ws?t=0)
158+
## [Future: Асинхронность на фьючерах без состояния](https://youtu.be/22ONv3AGXdk)
159+
- [](https://youtu.be/22ONv3AGXdk?t=0)
160+
## [Примеси, обертки, декораторы, мемоизация](https://youtu.be/2h9syXN5wO0)
161+
- [---------------------------------------------------- Функции-обертки (Wrappers) ------------------------------------------------](https://youtu.be/2h9syXN5wO0?t=0)
162+
- [ 00:00:00 Синхронная функция-обертка ](https://youtu.be/2h9syXN5wO0?t=0)
163+
- [ 00:02:55 Синхронная универсальная функция-обертка ](https://youtu.be/2h9syXN5wO0?t=175)
164+
- [ 00:08:28 Асинхронная универсальная функция-обертка ](https://youtu.be/2h9syXN5wO0?t=508)
165+
- [ 00:15:50 Синхронная функция-обертка, которая добавляет поведение (timeout)](https://youtu.be/2h9syXN5wO0?t=950)
166+
- [ 00:22:45 Асинхронная функция-обертка, которая добавляет поведение (timeout)](https://youtu.be/2h9syXN5wO0?t=1365)
167+
- [ 00:25:38 Функция-обертка, которая ограничивает вызов функции до одного вызова (once) ](https://youtu.be/2h9syXN5wO0?t=1538)
168+
- [ 00:27:36 Функция-обертка, которая ограничивает вызов функции до n-го вызова (limit)](https://youtu.be/2h9syXN5wO0?t=1656)
169+
- [ 00:29:50 Функция-обертка, которая отменяет вызов функции (cancel)](https://youtu.be/2h9syXN5wO0?t=1790)
170+
- [ 00:32:29 Функция-обертка с методами timeout, limit, cancel](https://youtu.be/2h9syXN5wO0?t=1949)
171+
- [ 00:39:03 Функция-обертка с методами timeout, limit, cancel (оптимизированная)](https://youtu.be/2h9syXN5wO0?t=2343)
172+
- [ 00:42:28 Функция-обертка, которая ограничивает один вызов за 200 мс (throttle)](https://youtu.be/2h9syXN5wO0?t=2548)
173+
- [ ----------------------------------------------------------- Примеси (Mixins) ---------------------------------------------------------------](https://youtu.be/2h9syXN5wO0?t=0)
174+
- [ 00:45:47 Примесь поля через точку ](https://youtu.be/2h9syXN5wO0?t=2747)
175+
- [ 00:51:35 Примесь поля через функцию extend](https://youtu.be/2h9syXN5wO0?t=3095)
176+
- [ 00:57:35 Примесь поля через object.assign( )](https://youtu.be/2h9syXN5wO0?t=3455)
177+
- [ 00:59:18 Примесь поведения ](https://youtu.be/2h9syXN5wO0?t=3558)
178+
- [ 01:02:23 Примесь изменения класса](https://youtu.be/2h9syXN5wO0?t=3743)
179+
- [ --------------------------------------------------- Мемоизация (Memoization) ---------------------------------------------------](https://youtu.be/2h9syXN5wO0?t=0)
180+
- [ 01:06:50 Определение](https://youtu.be/2h9syXN5wO0?t=4010)
181+
- [ 01:07:30 Реализация простой мемоизации ](https://youtu.be/2h9syXN5wO0?t=4050)
182+
- [ 01:14:43 Реализация простой мемоизации с проверкой скорости ](https://youtu.be/2h9syXN5wO0?t=4483)
183+
- [ 01:20:43 Удаление накопленного кэша ](https://youtu.be/2h9syXN5wO0?t=4843)
184+
- [ 01:25:35 Асинхронная мемоизация ](https://youtu.be/2h9syXN5wO0?t=5135)
185+
- [ 01:31:10 Преобразование аргументов и ключей в hash-функцию](https://youtu.be/2h9syXN5wO0?t=5470)
186+
- [ 01:33:32 Реализация сложной мемоизации](https://youtu.be/2h9syXN5wO0?t=5612)
187+
## [Мемоизация функций: memoize в JavaScript](https://youtu.be/H6S8QJo2Qxg)
188+
- [](https://youtu.be/H6S8QJo2Qxg?t=0)
189+
## [Композиция функций (pipe, compose) в JavaScript](https://youtu.be/xS9FicVrOTI)
190+
- [](https://youtu.be/xS9FicVrOTI?t=0)

0 commit comments

Comments
 (0)