Size: a a a

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

2018 April 18

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Vasiliy Yorkin
хотя блин, сори
> subscribe returns a canceller function.

короче это то, что надо
там везде возвращается ф-ция для отписки, типа того
https://github.com/paf31/purescript-behaviors/blob/a16e1a8706c31b11dc6b55b2112d7ea1f8755ed1/src/FRP/Event.js#L113
что-то не разобрался, как эту функцию правильно вызвать в середине другой функции (типа прервать подписку и продолжить процессы), в репозитории примеров нет, везде она опускается :(
источник

VY

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

AK

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

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
module Main where

import Prelude

import Control.Monad.Eff (Eff)
import Control.Monad.Eff.Class (liftEff)
import FRP (FRP)
import FRP.Event (Event, create, subscribe)
import Control.Monad.Eff.Console (CONSOLE, log)

main = do
 log "------"
 { event, push } <- create
 cancel <- subscribe event log
 push "2"
 push "3"
 push "12"
 pure cancel
 push "a"
 push "b"  
 push "c"  
 pure unit
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
вот a/b/c всё равно логаются
источник

AK

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

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
я думаю лучше зайти в fp слак в #purescript-beginners там спросить прям какой-то пример с отпиской
источник

AK

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

к

кана in PureScript — русскоговорящее сообщество
Anton Kotenko
module Main where

import Prelude

import Control.Monad.Eff (Eff)
import Control.Monad.Eff.Class (liftEff)
import FRP (FRP)
import FRP.Event (Event, create, subscribe)
import Control.Monad.Eff.Console (CONSOLE, log)

main = do
 log "------"
 { event, push } <- create
 cancel <- subscribe event log
 push "2"
 push "3"
 push "12"
 pure cancel
 push "a"
 push "b"  
 push "c"  
 pure unit
pure cancel - ты тут ничего не делаешь
источник

к

кана in PureScript — русскоговорящее сообщество
pure просто поднимает чистое (!) значение в контекст, ничего с ним не делая
источник

к

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

к

кана in PureScript — русскоговорящее сообщество
тебе нужно просто cancel полагаю
или
pure cancel >>= id

(так делать не стоит, это для интуиции)
источник

l

la gente está muy loca in PureScript — русскоговорящее сообщество
Anton Kotenko
что-то не разобрался, как эту функцию правильно вызвать в середине другой функции (типа прервать подписку и продолжить процессы), в репозитории примеров нет, везде она опускается :(
behaviors весьма хитро сделаны)
источник

к

кана in PureScript — русскоговорящее сообщество
ну это не тот случай, тут все очевидно, скорее всего pure там случайно оказался
источник

l

la gente está muy loca in PureScript — русскоговорящее сообщество
ну да
источник

AK

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

AK

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

AK

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

l

la gente está muy loca in PureScript — русскоговорящее сообщество
кана
ну это не тот случай, тут все очевидно, скорее всего pure там случайно оказался
Я просто, чтобы понять, что они в реальности делают, разобрал их компилированный результат, получилось что код не сложный, но довольно мощный и абстрактный)

Одна из крутейших реализаций что я видел на эту тему кстати
источник

AK

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