Композиция функий побуждает к бесточечному стилю программирования
(он еще называется комбинаторным)
(он еще называется комбинаторным)
Термин ссылочная прозрачность означает, что мы можем заменить функцию результатом её выполнения
Функция half(x) принимает число x и возвращает значение половины x. Если мы передадим этой функции аргумент 8, она вернет 4. После вызова чистая функция всегда может быть заменена результатом своей работы. Например, мы могли бы заменить half(8) на 4: где бы эта функция не использовалась в нашем коде, подмена никак не повлияла бы на конечный результат.
https://medium.com/devschacht/glossary-of-modern-javascript-concepts-1198b24e8f56
Функция half(x) принимает число x и возвращает значение половины x. Если мы передадим этой функции аргумент 8, она вернет 4. После вызова чистая функция всегда может быть заменена результатом своей работы. Например, мы могли бы заменить half(8) на 4: где бы эта функция не использовалась в нашем коде, подмена никак не повлияла бы на конечный результат.
https://medium.com/devschacht/glossary-of-modern-javascript-concepts-1198b24e8f56
Medium
Справочник современных концепций JavaScript: часть 1
Перевод статьи Kim Maida. Glossary of Modern JavaScript Concepts: Part 1
если функция неизменно возвращает один и тот же результат для одних и тех же передаваемых ей входных значений, она обладает ссылочной прозрачностью.
Монады
Монада это проектный шаблон, применяемый для описания вычислений в виде последовательности стадий, где вообще неизвестно обрабатываемое значение
Сами монады абстрактны и лишены всякого реального смысла. Их истинный потенциал начинает раскрываться только после того, как они будут реализованы в виде конкретного типа данных
Монада это проектный шаблон, применяемый для описания вычислений в виде последовательности стадий, где вообще неизвестно обрабатываемое значение
Сами монады абстрактны и лишены всякого реального смысла. Их истинный потенциал начинает раскрываться только после того, как они будут реализованы в виде конкретного типа данных
Option это такая монада из языка Scala и которую для этого примера я взяла из библиотеки ts-optionhttps://www.npmjs.com/package/ts-option
Отличная штука, на работе мы постоянно используем ее в редаксовских селекторах
npm
npm: ts-option
Scala like Option type for TypeScript. Latest version: 2.1.0, last published: 3 years ago. Start using ts-option in your project by running `npm i ts-option`. There are 25 other projects in the npm registry using ts-option.
https://www.youtube.com/watch?v=XaqR3G_NVoo&feature=youtu.be
отличное видео про merge sort
подробности про другие алгоритмы сортировки: https://techrocks.ru/2019/03/20/advanced-sorting-algorithms/
отличное видео про merge sort
подробности про другие алгоритмы сортировки: https://techrocks.ru/2019/03/20/advanced-sorting-algorithms/
YouTube
Merge-sort with Transylvanian-saxon (German) folk dance
Created at Sapientia University, Tirgu Mures (Marosvásárhely), Romania.
Directed by Kátai Zoltán and Tóth László.
In cooperation with "Maros Művészegyüttes", Tirgu Mures (Marosvásárhely), Romania.
Choreographer: Füzesi Albert.
Video: Lőrinc Lajos, Körmöcki…
Directed by Kátai Zoltán and Tóth László.
In cooperation with "Maros Művészegyüttes", Tirgu Mures (Marosvásárhely), Romania.
Choreographer: Füzesi Albert.
Video: Lőrinc Lajos, Körmöcki…
цикломатическая сложность любой программы может быть определена по формуле:
E — количество рёбер в потоке
N — количество узлов или блоков
P — количество узлов, имеющих точки выхода
M = E - N + P, где:E — количество рёбер в потоке
N — количество узлов или блоков
P — количество узлов, имеющих точки выхода
Forwarded from Про
#react_perf
Ways to optimize runtime performance in react:
memo, useCallback
Virtualization
Web workers
Wasm
Offscreen canvas (canvas being sent to web worker) - crazy shit!
Ways to optimize runtime performance in react:
memo, useCallback
Virtualization
Web workers
Wasm
Offscreen canvas (canvas being sent to web worker) - crazy shit!
что тут произошло?
мы добавили параметр
это позволяет уменьшить количество фреймов, хранимых в памяти
мы добавили параметр
cur в который записываем текущий результатэто позволяет уменьшить количество фреймов, хранимых в памяти
нашла хорошую картинку
слева — хвостовая рекурсия, справа — обычная
как мы видим, у хвостовой меньший уровень вложенности
картинка вот из этой статьи:
https://maxglassie.github.io/2017/08/24/tail-recursion.html
слева — хвостовая рекурсия, справа — обычная
как мы видим, у хвостовой меньший уровень вложенности
картинка вот из этой статьи:
https://maxglassie.github.io/2017/08/24/tail-recursion.html