Size: a a a

PureScript — русскоговорящее сообщество

2019 January 03

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
Anton Kotenko
Есть вопрос по FRP.Event, можно ли как-то flatMap с ним сделать? Типа:

f :: Event (List Int) -> Event Int
это же просто map
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
например map sum
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Тут надо не sum, к сожалению, а чтобы в результирующий ивент высылались все элементы списка по очереди
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
тогда это просто какой-то for
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
for e \x -> do
  ...
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
ну или traverse
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Event не Traversable и не Foldable
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Там есть folded, но это кажется не то
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
какая задача?
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Есть входящий поток значений, его нужно обработать функцией, которая на каждое событие во входящем потоке вернёт массив/список значений, которые надо "выровнять" и "отправить" по одному в результирующий ивент.
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
А, ну можно, в принципе, подписаться на первый и слать во второй их по очереди
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
но это с эффектом, который надо будет отменить потом
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
subscribe отдаёт Canceler
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
тут я не очень знаю, когда прервать второй ивент, поэтому хотелось бы без подписки, если это возможно
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
но наверное это правда effectful-операция и нужен traverse, потому что результирующий поток становится асинхронен с входящим
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
типа в первый пришло одно значение, а второй в ответ может выдать ещё пять
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
понял проблему, буду думать
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Anton Kotenko
тут я не очень знаю, когда прервать второй ивент, поэтому хотелось бы без подписки, если это возможно
нет, знаю, надо прервать подписку второго когда массив "кончился", тогда в принципе логика понятна.
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Anton Kotenko
нет, знаю, надо прервать подписку второго когда массив "кончился", тогда в принципе логика понятна.
протупил, массив не "кончается", на каждой итерации первого потока это новый массив, короче нужен аналог flatten или flatMap из всяких реактивных библиотек на JS. если можно определить, когда точно закончить подписку (исходный поток заканчивает юзер), то и такой вариант подойдёт.
источник