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
главная польза от иммутабельности в реальной жизни
когда мы следуем принципам иммутабельности, мы не мутируем объекты, а пересоздаем.
и когда после пересоздания мы сравниваем объекты, они оказываются разными (пушто на них разные ссылки) и так мы можем легко понять, что в объекте что-то изменилось
когда мы следуем принципам иммутабельности, мы не мутируем объекты, а пересоздаем.
и когда после пересоздания мы сравниваем объекты, они оказываются разными (пушто на них разные ссылки) и так мы можем легко понять, что в объекте что-то изменилось
Значения с плавающей точкой
Чтобы определить значение с плавающей точкой, необходимо ввести десятичную
точку и как минимум одну цифру после нее.
Для хранения значений с плавающей точкой требуется вдвое больше памяти, чем для целых чисел и ECMAScгipt по возможности преобразует значения в целые числа. Если после десятичной точки нет разрядов, число становится целым.
Если значение не имеет дробной части (например,
Чтобы определить значение с плавающей точкой, необходимо ввести десятичную
точку и как минимум одну цифру после нее.
10.1
Для хранения значений с плавающей точкой требуется вдвое больше памяти, чем для целых чисел и ECMAScгipt по возможности преобразует значения в целые числа. Если после десятичной точки нет разрядов, число становится целым.
Если значение не имеет дробной части (например,
1 .0), оно также преобразуется в целое число, например:Очень большие и очень малые числа с плавающей точкой можно представлять
в экспоненциальном формате (e-notation), в котором значения умножаются на 10
в соответствующей степени
в экспоненциальном формате (e-notation), в котором значения умножаются на 10
в соответствующей степени
var floatNum = 3 . 125е7Можете понимать эту запись как умножение числа 3.125 на 10^7
// 31250000
Значения с плавающей точкой представляются с точностью до 17 -го десятичного разряда, но все равно они гораздо менее точны в арифметических вычислениях, чем
целые числа.
Например, сложение 0.1 и 0.2 дает в результате 0.30000000000000004 вместо 0.3.
целые числа.
Например, сложение 0.1 и 0.2 дает в результате 0.30000000000000004 вместо 0.3.
Ошибки округления - это побочный эффект арифметических операций над числами
с плавающей точкой формата IEEE-754, а не особенность ECMAScript. В других языках,
в которых используется этот формат, наблюдаются такие же проблемы.
с плавающей точкой формата IEEE-754, а не особенность ECMAScript. В других языках,
в которых используется этот формат, наблюдаются такие же проблемы.