
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
ERROR: S client not available

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 как здесь написано