illiatshurotshka❄️
22.09.2017
19:55:12
может лучше просто закинуть ссылку в описание и добавить вариант бота который не отвечает на команды?
andretshurotshka?❄️кде
22.09.2017
19:57:05
illiatshurotshka❄️
22.09.2017
20:00:24
da horsie
22.09.2017
22:43:27
Товарищи, посоветуйте хороший курс по rxjs для новичков? Чтоб вот засесть так на полдня-день, почитать теорию, порешать задачки и усвоить базовые концепции.
Google
andretshurotshka?❄️кде
23.09.2017
04:46:03
Ты все равно будешь лезть в доку за описанием кучи операторов
https://www.learnrxjs.io
https://chrisnoring.gitbooks.io/rxjs-5-ultimate/content/
Андрей
23.09.2017
07:52:28
https://egghead.io/courses/introduction-to-reactive-programming
курсы штальца по rx на egghead неплохие - он там многое просто показывает как оно реализовано.
вообще неплохой способ учится rx это ручками реализовывать операторы, сабжекты и вот это все
andretshurotshka?❄️кде
23.09.2017
13:07:57
✋
Kelin
23.09.2017
14:22:41
В чем прекол rx? Какие проблемы он решает и зачем его юзают вкупе с фреймворками
illiatshurotshka❄️
23.09.2017
14:23:10
со стримам работать красивее
Fill
23.09.2017
14:24:57
#whois
Привет
Я работаю над Microsoft Dynamics CRM
специалист в .net
интересен наверное тем, что всегда готов обсудить что-нибудь интересное)
сообщество может помочь мне более глубоким погружением в парадигму фп
про группу узнал из @F_Sharp
Denis
23.09.2017
15:02:50
Хех
andretshurotshka?❄️кде
23.09.2017
16:14:55
почему фп обсуждают в ноджс чате(
Denis
23.09.2017
16:15:14
Где?
andretshurotshka?❄️кде
23.09.2017
16:21:58
@nodejs_ru
Вроде перестали
Google
illiatshurotshka❄️
23.09.2017
17:51:56
а бывают линзы которые одновременно фокусируются на нескольких объектах?
Denis
23.09.2017
17:52:41
illiatshurotshka❄️
23.09.2017
17:52:57
не
типо расходятся на каком-то моменте в разные структуры
но потом один морфизм применяется
Denis
23.09.2017
17:53:55
ну в оптике так можно? я думаю нет, значит и в линзах нельзя
illiatshurotshka❄️
23.09.2017
17:54:14
у нас не оптика ведь
Kelin
23.09.2017
17:54:24
Denis
23.09.2017
17:54:29
а линзы по твоему откуда пришли?
illiatshurotshka❄️
23.09.2017
17:55:09
просто название
Kelin
23.09.2017
17:55:30
+
Denis
23.09.2017
17:56:13
мда
нет конечно
у всего есть изоморфизмы
иначе это бы не существовало
Gleb
23.09.2017
17:56:44
Блин это нормально было не знать что в es6 оптимизирована хвостовая рекурсия без бабелей всяких?
Denis
23.09.2017
17:56:55
вот призма она как бы разбегается на несколько пучков что есть подобие тип суммы
illiatshurotshka❄️
23.09.2017
17:57:08
оккк
можно призмы для этого использовать?
Evgeniy
23.09.2017
17:57:21
Google
andretshurotshka?❄️кде
23.09.2017
17:57:24
illiatshurotshka❄️
23.09.2017
17:57:32
Gleb
23.09.2017
17:57:36
то есть запилили а потом выпилили?
andretshurotshka?❄️кде
23.09.2017
17:57:59
вроде не запиливали
был пропозал
Denis
23.09.2017
17:58:07
Gleb
23.09.2017
17:58:13
а понял)
andretshurotshka?❄️кде
23.09.2017
17:58:54
еее 300 человек в чате
Denis
23.09.2017
17:58:54
Дмитрий
23.09.2017
17:59:58
illiatshurotshka❄️
23.09.2017
18:00:05
как
Дмитрий
23.09.2017
18:00:59
illiatshurotshka❄️
23.09.2017
18:01:52
kana
23.09.2017
18:01:58
так, попробовал интегрировать пурсу в редакс-проект. Какие подвнодные камни:
1. в пурсе все бинарные и выше функции транслируются во вложенные функции, что логично, но из-за этого нужно каждые редьюсеры оборачивать в uncurryN(2, reducer), uncurryN из рамды
2. нужно писать те же экшон-креаторы для жс-кода, потому что работать без них в жс с конструкторами пурсы сложно
3. редакс в редьюсеры посылает @@redux/INIT, обработать его из пурсы не получится, а без обработки там ошибка будет падать. Поэтому нужно было в тип Actions добавлять лишний Init и потом делать кейс reducer state _ = iniitalState, но даже это работать не будет, смотрите ниже
4. даже от того, что выше, пришлось отказаться, потому что редакс зачем-то требует, чтобы экшоны были объектами (много на себя берет), поэтому пришлось каждый экшон обарачивать в рекорд, а потом матчерить кейсом.
5. дефолтных значений в пурсе делать нельзя, а начальное значение указывать в кейсе _ тоже нельзя, потому что редакс будет посылать сюде все экшоны, даже не наши.
Из-за этого нужно будет писать свой враппер над всеми редьюсерами на пурсе, комбайнить их тоже на пурсе, чтобы и INIT обработать, и type убрать, и экшоны в экшоны оборачивать (чтобы вложенные редьюсеры делать)
Все это делает интеграцию пурсы с редаксом возможной, но код получается так себе, профитов от перевода редьюсеров на пурсу будет не так много, как хотелось бы
Gleb
23.09.2017
18:02:09
Ну а бабель вот смотрю год не обновлялся, хотя может и нечего обновлять там, сделали и все, на него можно рассчитывать?
kana
23.09.2017
18:02:09
последний коммит в бабель был... сегодня
Denis
23.09.2017
18:03:11
pux?
Gleb
23.09.2017
18:03:49
Cорри, не бабель не обновлялся, а плагин тэил оптимизешн
andretshurotshka?❄️кде
23.09.2017
18:03:53
не, это походу над редаксом обертка
Google
Дмитрий
23.09.2017
18:03:59
как
choise profunctor + fanin, как то так
andretshurotshka?❄️кде
23.09.2017
18:04:40
так, попробовал интегрировать пурсу в редакс-проект. Какие подвнодные камни:
1. в пурсе все бинарные и выше функции транслируются во вложенные функции, что логично, но из-за этого нужно каждые редьюсеры оборачивать в uncurryN(2, reducer), uncurryN из рамды
2. нужно писать те же экшон-креаторы для жс-кода, потому что работать без них в жс с конструкторами пурсы сложно
3. редакс в редьюсеры посылает @@redux/INIT, обработать его из пурсы не получится, а без обработки там ошибка будет падать. Поэтому нужно было в тип Actions добавлять лишний Init и потом делать кейс reducer state _ = iniitalState, но даже это работать не будет, смотрите ниже
4. даже от того, что выше, пришлось отказаться, потому что редакс зачем-то требует, чтобы экшоны были объектами (много на себя берет), поэтому пришлось каждый экшон обарачивать в рекорд, а потом матчерить кейсом.
5. дефолтных значений в пурсе делать нельзя, а начальное значение указывать в кейсе _ тоже нельзя, потому что редакс будет посылать сюде все экшоны, даже не наши.
Из-за этого нужно будет писать свой враппер над всеми редьюсерами на пурсе, комбайнить их тоже на пурсе, чтобы и INIT обработать, и type убрать, и экшоны в экшоны оборачивать (чтобы вложенные редьюсеры делать)
Все это делает интеграцию пурсы с редаксом возможной, но код получается так себе, профитов от перевода редьюсеров на пурсу будет не так много, как хотелось бы
насчет uncurry в rollup плагине есть опция
kana
23.09.2017
18:05:07
pux?
Нет, не вариант, мой ассампшн был в том, чтобы потиху проект переписывать на пурсу. И если с какими хелперами простыми это делать можно, то с редьюсерами нет
Admin
Denis
23.09.2017
18:05:41
Дмитрий
23.09.2017
18:05:51
Ох
Ладно, молчу
kana
23.09.2017
18:05:55
illiatshurotshka❄️
23.09.2017
18:06:37
Дмитрий
23.09.2017
18:06:46
kana
23.09.2017
18:07:25
но это уже не будет простой интеграцией "взял и переписал один файл", все работает как прежде
Дмитрий
23.09.2017
18:07:31
Будет
Там лоадеры в 15 строк
kana
23.09.2017
18:07:47
как минимум будет два файла, лоадер и пакет для него
Дмитрий
23.09.2017
18:08:40
Ну это конечно сложнее чем переписать проект на другом языке ?
Для начала можно обойтись и без пакета, просто скриптом в проекте
kana
23.09.2017
18:08:47
для роллапа плагин для пурсы, который как раз инлайн и делает, далеко не в 15 строк) https://github.com/Pauan/rollup-plugin-purs/tree/master/src
Дмитрий
23.09.2017
18:09:06
Просто я поюзал rollup-purs и он реально имеет смысл, интересные опции и оптимизации делает
Google
kana
23.09.2017
18:09:38
ух
andretshurotshka?❄️кде
23.09.2017
18:09:43
rollup-loader ?)
Дмитрий
23.09.2017
18:09:54
А не переписывать рооллап со всеми его мега-оптимизациями ?
kana
23.09.2017
18:10:11
это похоже на то, как у нас в проекте ant на gradle заменили, добавив в проект градл-скрипт, который антовые команды запускает
Дмитрий
23.09.2017
18:10:12
illiatshurotshka❄️
23.09.2017
18:10:33
ну а как такие задачи другие решают
например есть рекорды A {a: B, b: B, c: B} и B {a: String, b: String} и нужно в A в B у всех строк первую букву большой сделать
kana
23.09.2017
18:13:17
написать свой траверс по всем полям, хотя я несу чушь наверное, потому что с настоящими линзами я только знакомлюсь, на задача вроде точно под траверс, только тот с коллекциями, а тут нужно вручную разбивать и собирать
удивился тому, насколько пурса аскетична, в прелюдии даже таплов нет, а сама прелюдия конечно внешняя
Denis
23.09.2017
18:16:48
illiatshurotshka❄️
23.09.2017
18:18:30
https://github.com/julien-truffaut/Monocle/blob/master/docs/src/main/tut/optics/traversal.md как здесь написано