@frp_ru

Страница 188 из 420
kana
27.09.2017
20:40:47
почему не сделать?

это же обычный объект такой

Google
Maxim
27.09.2017
20:41:29
Мапнуть промапнуть чилдренов сложнее с жыксом

? animufag ?
27.09.2017
20:41:51
https://www.youtube.com/watch?v=SknxggwRPzU&feature=push-u&attr_tag=tqMgRIGJfSJXiP19-6
думаю видос скорее плохой нежели хороший

kana
27.09.2017
20:42:09
ну в элме мапают неперемаповают

illiatshurotshka❄️
27.09.2017
20:42:32
думаю видос скорее плохой нежели хороший
тоже не понравился, в викибукс хорошо написали

? animufag ?
27.09.2017
20:43:25
ну это такая частая проблема. мол берут сложную глубокую тему. в ней проходится по вводному материалу. и объясняют долго и как дауну с картинками и ебаными аналогий как в хаскель for a great good и типо в конце вуаля это же легко всё

Maxim
27.09.2017
20:55:48
Меня кстати бесит рекомпоуз не только безумным количеством вложенных хоков на выходе но и адом типизации

kana
27.09.2017
20:55:50
ну типа вот, обобщил prism :: (small' -> large') -> (large -> Either large' small) -> Prism large large' small small' prism build get = dimap get (either pure (fmap build)) . right' _Left :: Prism (Either a x) (Either b x) a b _Left = prism Left (either Right (Left . Right)) _Right :: Prism (Either x a) (Either x b) a b _Right = prism Right (either (Left . Left) Right)

все пожалуй

Maxim
27.09.2017
20:56:21
Как с выводом типов на флоу для withHandlers например?

kana
27.09.2017
21:03:29
все, кату про линзы засабмитал, теперь могу спокойно работать всю оставшуюсь неделю. А то попросту не выходило: смотрю аниме, а мысли про линзы, ложусь спать, а думаю, что траверсал похож на функтор для линз

Котяй Негодяй
27.09.2017
21:07:29
Вот такая реализация long polling: const request$ = new Subject() const subscription = request$ .mapTo(params) .map(getUpdates) .subscribe( resPromise => resPromise.then( (response) => { if (response.ok) { response.result.forEach(emit) } request$.next() }, ), ) request$.next() Но это вообще нормально — генерировать событие прямо из подписчика?

Maxim
27.09.2017
21:10:25
А почему бы не вайл трухнуть эвэйт респонса с пинком сабжекта ? И emit будто бы чуждая вещь, не из стримов

kana
27.09.2017
21:11:21
видел недавно фразу "ангулярщики думаю, что rx - это такой эвентбас"

Google
Maxim
27.09.2017
21:13:25
Думаю стрим пинающий свой сабжект может утечь

Котяй Негодяй
27.09.2017
21:16:51
Думаю стрим пинающий свой сабжект может утечь
Ну, это часть кода, я там метод отписки возвращаю.

kana
27.09.2017
21:17:34
полное решение https://gist.github.com/kana-sama/abb0c7b513e35fd41ab1d96e3c35e29e

kana
27.09.2017
21:17:43
нет

я не знаю что это такое и не хочу знать

пока что

Котяй Негодяй
27.09.2017
21:17:57
kana
27.09.2017
21:17:59
в субботу

Denis
27.09.2017
21:18:39
я не знаю что это такое и не хочу знать
мб я гист сделаю, а ты запостишь у себя)

kana
27.09.2017
21:19:12
решение? Или статью? Если второе, то с радостью

решение никто кроме тех, кто уже знает, не поймет)

illiatshurotshka❄️
27.09.2017
21:19:55
а по линзам статья будет?

kana
27.09.2017
21:20:31
не думаю, что это можно передать статьей) Все настолько странно там

Нужно просто написать их и понять

Google
kana
27.09.2017
21:21:20
Думаю, я бы смог в статье описать обычные линзы, мб даже с изо, но без призм, фолдов, траверсов (ну последние тоже мб смог бы)

нет, я не про то

Понятно, что траверсал - функтор. Я говорю, что сам по себе травесал похож на функтор ДЛЯ линз. То есть он берет линзу, которая работает на одном объекте и делает из нее линзу, которая работает на многих, как например List.map

Maxim
27.09.2017
21:24:02
Пардон. Немного не понял, что ты предлагаешь.
Вместо цикла у вас есть https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/repeat.md

Читай его бесконечно с дебонсом

Maxim
27.09.2017
21:26:16
Дебонс же

Таймаут, или как там он называется

Котяй Негодяй
27.09.2017
21:26:30
репит зациклится
Это норм. Там лонг поллинг у запроса.

Котяй Негодяй
27.09.2017
21:26:42
Мне таймаут не нужно реализовывать.

Denis
27.09.2017
21:26:47
Котяй Негодяй
27.09.2017
21:26:58
браузер зависнет)
Не зависнет же.

Denis
27.09.2017
21:27:08
юзай скедулер типа реквестанимейшенфрейм

Не зависнет же.
покажи код

Maxim
27.09.2017
21:27:18
Что бы подождал секунду другую, прежде чем прочитает следующее значение из безконечного источника

Котяй Негодяй
27.09.2017
21:27:22
Сервер отвечает секунду минимум. Я могу сказать, чтобы дольше.

kana
27.09.2017
21:27:23
ладно, не могу удержаться, пора смотреть на профункторную оптику

Google
Котяй Негодяй
27.09.2017
21:27:50
http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-repeat

Та только количество повторений.

А у меня... эээ.. Инфинити?

Denis
27.09.2017
21:28:36
А у меня... эээ.. Инфинити?
вот если инфинити то браузеру хана)

ну или скедулер

Maxim
27.09.2017
21:29:41
А у меня... эээ.. Инфинити?
Странно, должно быть что-то вроде -1

Котяй Негодяй
27.09.2017
21:30:14
Следующий запрос только после того, как сервак ответит. Сервак ждёт столько, сколько скажу.

Admin
ERROR: S client not available

kana
27.09.2017
21:30:49
вау, я думал, что инварианты никак нельзя мапать. Как же я ошибался. Я про ExpFunctor

Котяй Негодяй
27.09.2017
21:32:50
Во: const request$ = new Subject() const subscription = request$ .startWith(null) .mapTo(params) .map(getUpdates) .mergeMap(Observable.fromPromise) .do(request$) .subscribe((response) => { if (response.ok) { response.result.forEach(emit) } })

kana
27.09.2017
21:33:04
Ковариантные типы можно мапать функтором. Контрвариативные вещи можно мапать кофунктором. А инвариантные я думал мапать нельзя, но решение же очевидно, нужно просто сразу смапать и влево, и в право) имея a -> a мы можем превратить его в b -> b, прикомпозив справа b -> a, а слева a -> b. Это и есть ExpFunctor f

Maxim
27.09.2017
21:33:58
Котяй, попробуй most js, если не поздно. Делает тоже самое, но проще и понятнее. Ещё и data-last , фэнтези спеки поддерживает и т.д.

Denis
27.09.2017
21:33:59
.mergeMap(Observable.fromPromise) зачем это?

Алексей
27.09.2017
21:34:34
.mergeMap(Observable.fromPromise) зачем это?
Люди не знают что RxJS методы умеют promise "жрать"

Google
Denis
27.09.2017
21:34:56
kana
27.09.2017
21:35:07
xmap :: (a -> b) -> (b -> a) -> f a -> f b

Denis
27.09.2017
21:35:43
xmap :: (a -> b) -> (b -> a) -> f a -> f b
а где в хаскелл такое?

kana
27.09.2017
21:35:53
https://hackage.haskell.org/package/category-extras-0.53.0/docs/Control-Functor-Exponential.html

Котяй Негодяй
27.09.2017
21:36:04
И не захотел .do(request$)

kana
27.09.2017
21:36:04
http://comonad.com/reader/2008/rotten-bananas/

Котяй Негодяй
27.09.2017
21:36:48
Люди не знают что RxJS методы умеют promise "жрать"
Хм. А по типам мне без этой строки в подписчике выводится промис.

Denis
27.09.2017
21:39:53
Котяй Негодяй
27.09.2017
21:40:41
твои 2 мапа + mergeMap можно собрать в 1 mergeMap
Тогда мне придётся впихнуть туда ещё и mapTo

Котяй Негодяй
27.09.2017
21:41:32
И вызывать в мапе Observable.fromPromise(getUpdates(params))

Denis
27.09.2017
21:41:36
да ты тут смешал и сайдэффекты и прочее в одном месте

mergeMapTo(getUpdates(params))

Котяй Негодяй
27.09.2017
21:42:34
.mapTo(params) .mergeMap(getUpdates)

mergeMapTo(getUpdates(params))
Не. getUpdates должен дёргаться каждый раз.

А так он дёргается только 1 раз при вызове mergeMapTo.

Denis
27.09.2017
21:43:41
ага

Котяй Негодяй
27.09.2017
21:44:01
Если по твоему, то mergeMapTo(() => getUpdates(params))

Но в два вызова проще читать.

Так. Значит map промисы не резолвит, а mergeMap резолвит. Спасибо. Не знал.

Страница 188 из 420