
? animufag ?
14.06.2017
14:59:06

Denis
14.06.2017
15:00:27
тот же Rx это способ делать композии для эффектов
об этом сам Эрик говорит https://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2014/Keynote-Duality
о чем люди думают переводя это в 2017? https://habrahabr.ru/company/ruvds/blog/330880/

Google

andretshurotshka?❄️кде
14.06.2017
15:29:58
хабр

Denis
14.06.2017
16:18:50
что за дурацкая погоня за байтами? https://github.com/luisvinicius167/dutier

Алексей
14.06.2017
16:33:20

Denis
14.06.2017
16:34:03
рЫдакс мало чем обладает
сколько раз говорю прочитайте про https://wiki2.org/en/Join-pattern
и это легко сделать в Rx без разрыва состояния
и более того можно сделать добавление, обновление, удаление редьюсера без потери реактивного состояния (у меня где-то валяется такая идея)

Дмитрий
14.06.2017
16:55:54

Алексей
14.06.2017
16:56:19
каким?
Фатальный недостаток = Написанно не мной :)

Дмитрий
14.06.2017
16:57:50

Denis
14.06.2017
16:57:54
само классно это сделано в беконе http://baconjs.github.io/api.html#bacon-update
но не одним беконом можно ограничиться))
https://github.com/xgrommx/react-rx-flux/blob/master/src/rx-extensions.js#L37-L48
most.js
https://github.com/xgrommx/most-reactive-flux/blob/master/app/src/utils.js#L8-L17

Google

Yumi
14.06.2017
17:00:02

Алексей
14.06.2017
17:00:36

Yumi
14.06.2017
17:01:26
Чем mobx.

andretshurotshka?❄️кде
14.06.2017
17:01:38

Denis
14.06.2017
17:01:46
чем mobx плох?)

Дмитрий
14.06.2017
17:02:03
Мутабелен))

Yumi
14.06.2017
17:03:36

Denis
14.06.2017
17:04:14
посмотри на ngrx и пойми каким должен быть на самом деле redux (хотя и ngrx не идеален)

Дмитрий
14.06.2017
17:04:32
У каждого свой redux

Denis
14.06.2017
17:05:12
но самый правильный это join patterns, а то все детские забавы псевдо функцЫональщиков

Yung
14.06.2017
17:05:19

Алексей
14.06.2017
17:05:27

Vladimir
14.06.2017
17:05:32

Дмитрий
14.06.2017
17:05:32
?

Denis
14.06.2017
17:06:49

Vladimir
14.06.2017
17:19:01
А есть его реализация в нпм?

Denis
14.06.2017
17:19:25
ага
Rx
Bacon

Google

Сергей
14.06.2017
17:19:47
Kefir

Denis
14.06.2017
17:19:51
нет
но можно сделать по примеру как я сделал для most.js

Дмитрий
14.06.2017
17:27:33
Адаптер для stream components есть в recompose

Denis
14.06.2017
17:27:53

Дмитрий
14.06.2017
17:28:31
Ну вот то что у тебя в примере
Я про непосредственно вторую часть — сам компонент

Denis
14.06.2017
17:28:58
в том рекомпозе можно половину заменить рамдой

Дмитрий
14.06.2017
17:29:13
Это можно сделать разными способами — у тебя компонент стримов, в recompose — стрим компонентов

Denis
14.06.2017
17:29:18

Дмитрий
14.06.2017
17:30:09
Наоборот, все что кроме него)) streamable

Denis
14.06.2017
17:31:01
ты пользуешься им?

Дмитрий
14.06.2017
17:31:04
Да
И учитывая, сколько там бывает тонкостей в пересечении с внутренностями реакта, сложно сделать лучше непосредственно автора реакта

Yumi
14.06.2017
17:42:46
recompose очень крутой, можно не останавливаться.
Правда не совсем врубился в withReducer. Я так понимаю его можно использовать, заместо локальных cтейтов?

Сергей
14.06.2017
17:48:10

Yumi
14.06.2017
17:48:44
Я пытаюсь найти приминение.

Дмитрий
14.06.2017
17:49:39
Это кстати офигенная функция)

Google

Сергей
14.06.2017
17:50:17

Дмитрий
14.06.2017
17:50:28
Тут немного иначе)
Представь себе, что вот есть стейт — условный State x. Мы хотим его обработать, и поэтому пишем какую-то функцию, обрабатывающую значение в нём, но заворачивать его обратно она не умеет
f(State) -> payload
Поэтому мы делаем функцию, которая умеет сохранять полученное нами значение.
f(State, payload) -> State
Скомбинировав их, мы получаем самостоятельную функцию для выполнения операций над нашим состоянием
chain( save: (State, payload) -> State, edit: (State) -> payload )
chain( append: (List, el), head: (List) -> el )
chain( join: (String, STRING), toUpper: (String) -> STRING ) )
chain( add: (Num, Num+1), inc: (Num) -> Num+1)
Выше я описыал смысл chain

Denis
14.06.2017
17:51:01
https://medium.com/javascript-inside/why-the-hipsters-recompose-everything-23ac08748198

Дмитрий
14.06.2017
17:51:21
В withReducer добавляется функция, которая будет заниматься сохранением данных в стейт
Причем именно с такой сигнатурой
Та же сигнатура у редюсеров редакса, короче, это функция, чтобы превращать твои данные в стейт
Первая мысль, которая возникает при этом — ну я же могу обработать данные отдельно — вот эта функция этим и занимается

Denis
14.06.2017
17:53:10
это проблема всего современного мира айти (есть либа а вменяемых доков примеров и все такое нет)

Дмитрий
14.06.2017
17:54:29
Даа, это точно

Admin
ERROR: S client not available

Denis
14.06.2017
17:55:08
вот что сделает эта призма?
over (_1 <<< _Just <<< traversed) (_*10) (Tuple (Just [1,2,3]) 123)

Дмитрий
14.06.2017
17:55:26
Но доки тяжело писать. Мне проще сделать мега-либу, чем корректно и хорошо описать, как она работает ?

Denis
14.06.2017
17:55:34
линзы - для типа произведения
призмы - для типа суммы

Дмитрий
14.06.2017
17:55:52
Сложна)

Denis
14.06.2017
17:56:07
тут даже тип суммы в типе произведения
тут и линза и призма (они компоузятся)
линзы читать надо слева на право (в отличии от обычной композиции)

Yumi
14.06.2017
18:06:51

Denis
14.06.2017
18:17:25
https://otvet.mail.ru/question/75829996 :D

Aleh
14.06.2017
18:19:49

Google

Denis
14.06.2017
18:20:03
нет

Aleh
14.06.2017
18:20:11
жаль

Denis
14.06.2017
18:20:12
и тут про рекурсивные схемы больше

Yumi
14.06.2017
18:24:11

Tim
14.06.2017
19:15:02
Привет!
Подсобите с таким вопросиком:
const h = map(__, xs)
Есть варианты избавиться тут от плейсхолдера __?
Или вариант с плейсхолдером норм?

Denis
14.06.2017
19:15:17
flip
flip(map)(xs)

Tim
14.06.2017
19:16:15
?
смущало в этом варианте два вызова функции, но вроде все ок

Yumi
14.06.2017
20:39:14
Так количество вызовов, это лучше, чем количество аргументов. ?

Vadim
15.06.2017
09:25:02
Народ! А можно ли в ramda создать аналог цикла, в котором длительность его исполнения зависит от результатов операции внутри цикла? Ну то-есть, аналог цикла while, который выполняется пока вычисляемый в нем результат равен true?

Denis
15.06.2017
09:25:23
unfold
это развертка
чтобы выйти надо вернуть false внутри

Vadim
15.06.2017
09:26:07
Спасибо! Поиграюсь )
@xgrommx а можно ли сделать так, что б внутри цикла функция видела результаты предыдущей операции?
И на них основывала свое дальнейшее действие
Я просто стараюсь избегать рекурсии, которая в js приводит к переполнению стека

Denis
15.06.2017
09:30:14
ну вроде анфолд это и делает

Vadim
15.06.2017
09:32:08
Да, точно! Спасибо!

Denis
15.06.2017
09:34:10
а вообще
Histomorphisms are terrifically simple - they just give you access to arbitrary previously-computed values of the recursion at any given point