🇺🇦 Math.random(): javanoscript community – Telegram
🇺🇦 Math.random(): javanoscript community
1.14K subscribers
363 photos
8 videos
530 links
Download Telegram
Функциональное программирование, в прошлый раз мы говорили о морфизмах: эндоморфизм и изоморфизм. Сегодня продолжим говорить о морфизмах: гомоморфизм (homomorphism) .


Пусть (M, ⋅M, eM) и (N, ⋅N, eN) — два произвольных моноида (о моноидах мы говорили ранее). Функция h: MN называется гомоморфизмом (homomorphism), если h(xM y) = h(x) ⋅N h(y) для любых x и y из M, и h(eM) = eN.

f(a * b) = f(a) * f(b)

A.of(f).ap(A.of(x)) == A.of(f(x))

Either.of(_.toUpper).ap(Either.of("oreos")) == Either.of(_.toUpper("oreos"))



Примеры гомоморфизмов:

- Суммирование элементов списка чисел, произведение элементов списка чисел, нахождение минимального и максимального элементов списка чисел можно рассматривать как списочные гомоморфизмы hom(+, id, 0), hom(⋅, id, 1), hom(max, id, −∞) и hom(min, id, +∞) соответственно. Подобные списочные гомоморфизмы, у которых второй параметр является тождественным отображением id, будем коротко записывать reduce(⋅, e).

- Функция length, вычисляющая длину списка, является списочным гомоморфизмом hom(+, one, 0), где one(x) = 1.

- Функция, которая применяет некоторую функцию f к каждому элементу списка, тоже является списочным гомоморфизмом, а именно hom(++, g, []), где g(x) = [f(x)]. Такие функции будем коротко записывать как map(f).

- Функцию сортировки тоже можно представить в виде списочного гомоморфизма. А именно, пусть merge — функция слияния двух упорядоченных списков, list(x) = [x] — функция, превращающая элемент в одноэлементный список. Тогда гомоморфизм hom(merge, list, []) будет искомым списочным гомоморфизмом.


Уфф... сегодня получилось много математики в описании гомоморфизма, чтобы окончательно взорвать мозг в ссылке библиотека, которая haskell-style морфизмы портирует для javanoscript
Список пунктов, которые нужно сделать перед тем как запускать свой сайт.

https://frontendchecklist.io/
Продолжая тему нашей вчерашней встречи о росте синьерити: 32 совета веб разработчикам для того, чтобы рости над собой в 2020 году

https://medium.com/better-programming/32-tips-for-every-web-developer-in-2020-782fd6554f0d
Для участников нашего сообщества промо код со скидкой на fwdays: gseniority_fwdays
С чего начать изучение того или иного фреймворка, языка, библиотеки? Конечно с документации!
А потом, хорошо бы увидеть реальный пример использования выбранной технологии. По ссылке примеры реализации приложения на разных технологиях.

https://github.com/gothinkster/realworld
Уважаемые друзья! Хотелось бы узнать ваше мнение о том, что интересно видеть в нашем канале, выберите из списка или напишите в чате
Anonymous Poll
30%
Github tranding дайджест
68%
Интересные проекты из мира JavaScript
57%
Ссылки на статьи
26%
Мемасики
12%
Гифки
30%
Функциональное программирование
22%
Промо-коды конференций
1%
Свой вариант - напишу в чате
🇺🇦 Math.random(): javanoscript community pinned «Уважаемые друзья! Хотелось бы узнать ваше мнение о том, что интересно видеть в нашем канале, выберите из списка или напишите в чате»
Библиотека, для создания анимаций с учетом законов физики. В ссылках снизу github репозиторий и react-spring визуализация.
https://www.react-spring.io/
Друзья, делимся фото с последней встречи - спасибо всем, кто присоединился и уже планируем следующий митап. Поделимся с вами подробностями уже в самое ближайшее время 😉 https://www.facebook.com/pg/Math.Random.community/photos/?tab=album&album_id=787924461684680
⁠Лень читать длинную документацию? Не можешь вспомнить простые вещи о знакомых инструментах? Выход есть - набор шпаргалок для разработчика.

https://devhints.io/
Бот для торговли криптовалютами на биржах. Написан на JavaScript. Будет полезен тем, кто решил завязать с разработкой и зарабатывать на криптовалютах.

https://github.com/DeviaVir/zenbot
Обучающий workshop который научит писать backend на node.js с использованием популярного фреймворка Nest.JS и выкладывать результат в Azure.

https://nitro-stack.github.io/nitro-workshop/