00:00 Рекурсивная функция для вычисления глубины стека 03:25 Неявная рекурсия 04:52 Рекурсивная функция для вычисления степени числа 06:12 Рекурсивная функция для вычисления факториала 06:29 Рекурсивная функция для вычисления числа Фибоначчи 09:27 Рекурсивная функция, как аналог функции reduce 12:04 Оптимизация хвостовой рекурсии 15:41 Оптимизация обычной рекурсивной функции
@@sevgenberg585 Кожен виклик функції у виконання відбувається на наступному колі event loop. Тобто між викликами можуть асинхронно виконуватись callback таймерів, проміси та інше асинхронне. Причому це не стабільно, бо асинхронний код може бути присутнім, а може й ні. Тобто примітивне випробування може демонструвати малу різницю, а в дійсно робочому коді буде інша ситуація. Цикл виконується синхронно на одній ітерації event loop, тож ніхто не може "перервати" і очікуваний час виконання стає більш передбачуваний. Разом з тим існує зворотнє завдання: допустима повільніша рекурсія, але критично важливо віддавати кванти часу процессора на асинхронне виконання. В такому разі можна казати про ще один умовний вид - "сповільнена рекурсія". Це коли кожен наступний рекурсивний виклик виконується через відкладене планування з певним таймером (setTimeout, nextTick etc).
@@vladyslavkarpenko9372 Maybe I need to specify: У меня есть рекурсивный список элементов с неизвестной глубиной.Каждый элемент имеет активное свойство. Я хочу создать метод, который возвращает true, когда активное свойство любых дочерних элементов или дочерних элементов элемента истинно. ChildStack можно использовать как замену рекурсии?
Не полностью разобрался что происходит в примерах функции fibonacci и fibonacci1. Что там суммируется и каком образом конечное получаемое значение это число, если функция возвращает само себя а не какое то там число? Там единственный число это аргументы, потому думаю что суммируются аргументы. А где они тогда сохраняются и передаются для следующего вызова ? А еще интересно то, что каким образом возвращается суммированное значение например как 377, если у нас только 1 условии с двумя вариантами (возвращать 1 или рекурсивно вызывать) которых не какой из них не говорить о том что надо вернуть все суммирование значение. На счет рекурсии и его смысл понятен, а на счет логику работы этих функции не могу полностью усвоить.
Никогда не понимал, почему опытные программисты, как правило из СНГ, часто бывают безграмотны в Английском языке ?)) ну что за ретурн?)) неужели так сложно подучить язык чтобы не каверкать его подобным произношением ))
00:00 Рекурсивная функция для вычисления глубины стека
03:25 Неявная рекурсия
04:52 Рекурсивная функция для вычисления степени числа
06:12 Рекурсивная функция для вычисления факториала
06:29 Рекурсивная функция для вычисления числа Фибоначчи
09:27 Рекурсивная функция, как аналог функции reduce
12:04 Оптимизация хвостовой рекурсии
15:41 Оптимизация обычной рекурсивной функции
Спасибо вам Тимур Гафарович, лекция было очень полезная!
Спасибо. Надеюсь, дальше по курсу будет больше пример с рекурсией, а то этими фибиначи весь интернет забил. Хотелось бы что-то из реальный случаев.
Чудова лекція, дякую!
Супер!Можно еще организовать одну лекцию по сетевым протоколам?
Для того чтобы понять рекурсию, надо сначала понять рекурсию :-)
рекурсия она конечно запутанная вещь, почему рекурсия медленнее цикла?Может кто то знает?Объясните пожалуйста...
@@sevgenberg585 chrome dev tools подивись там все ясно
@@sevgenberg585 замыкание
@@sevgenberg585 Кожен виклик функції у виконання відбувається на наступному колі event loop. Тобто між викликами можуть асинхронно виконуватись callback таймерів, проміси та інше асинхронне. Причому це не стабільно, бо асинхронний код може бути присутнім, а може й ні. Тобто примітивне випробування може демонструвати малу різницю, а в дійсно робочому коді буде інша ситуація. Цикл виконується синхронно на одній ітерації event loop, тож ніхто не може "перервати" і очікуваний час виконання стає більш передбачуваний.
Разом з тим існує зворотнє завдання: допустима повільніша рекурсія, але критично важливо віддавати кванти часу процессора на асинхронне виконання. В такому разі можна казати про ще один умовний вид - "сповільнена рекурсія". Це коли кожен наступний рекурсивний виклик виконується через відкладене планування з певним таймером (setTimeout, nextTick etc).
@@vladyslavkarpenko9372 Maybe I need to specify:
У меня есть рекурсивный список элементов с неизвестной глубиной.Каждый элемент имеет активное свойство. Я хочу создать метод, который возвращает true, когда активное свойство любых дочерних элементов или дочерних элементов элемента истинно. ChildStack можно использовать как замену рекурсии?
Спасибо Вам!!!
👏👍
Спасибо !
Не полностью разобрался что происходит в примерах функции fibonacci и fibonacci1. Что там суммируется и каком образом конечное получаемое значение это число, если функция возвращает само себя а не какое то там число? Там единственный число это аргументы, потому думаю что суммируются аргументы. А где они тогда сохраняются и передаются для следующего вызова ? А еще интересно то, что каким образом возвращается суммированное значение например как 377, если у нас только 1 условии с двумя вариантами (возвращать 1 или рекурсивно вызывать) которых не какой из них не говорить о том что надо вернуть все суммирование значение. На счет рекурсии и его смысл понятен, а на счет логику работы этих функции не могу полностью усвоить.
💻💻💻😍😍😍😍
Хорошо конечно.
Но вот примеров для работы с объектами не хватает
Непонятно, при чем тут объекты?
Никогда не понимал, почему опытные программисты, как правило из СНГ, часто бывают безграмотны в Английском языке ?)) ну что за ретурн?)) неужели так сложно подучить язык чтобы не каверкать его подобным произношением ))
Это не английский язык, это программистский сленг, я на английском лекции читаю, вообще-то
Спасибо большое!
Спасибо!