Size: a a a

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

2018 April 25

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Так вот вопрос про хендлеры — у меня там TEA, есть Smolder-Markup, есть рендерер для блока, в стейте значение мейби. на основе мейби я решаю какой мессадж послать при клике на блок. Если я использую этот maybe в разметке, чтобы вывести текст (show message), то всегда выводится правильный мессадж в соответствии с состоянием мейби, если же я делаю:

import DOM.Event.EventTarget (EventListener, eventListener)
import Text.Smolder.Markup (on)

let maybeVal = state.myMaybeVal
-- let text = if isJust maybeVal then "Yes" else "No"
on "click" $ eventListener (\_-> do
   let maybeVal = if isJust maybeVal then "Yes" else "No"
   log $ show maybeVal
   pure unit
)


то после того, как мейби один раз "превратилось" в Just в стейте, каждый новый клик всегда пишет в лог "Yes", не смотря на то, что в том же рендере maybeVal записалось в HTML-код текстом как "No". при каких-то обстоятельствах, ещё не понял при каких, мне удаётся его "образумить" и он логает "No". Может подписка на события требует дополнительных действий в таких случаях?
источник
2018 April 26

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Сделал минимальный пример, компилится, запускается через npm install / bower install / pulp build / pulp server, но может и без запуска будет понятно в чём ошибка:

https://gist.github.com/shamansir/627efcc42f5108727dbf55c54c12e1bd#file-main-purs-L68
источник

AK

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

AK

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

AK

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

VS

Victor Savkov in PureScript — русскоговорящее сообщество
попробую посмотреть сегодня вечером
источник

AK

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

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
https://github.com/purescript-web/purescript-dom/pull/141/files всё-таки не будет больше лейблов эффектов
источник

l

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

AK

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

AK

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

l

la gente está muy loca in PureScript — русскоговорящее сообщество
Anton Kotenko
Планировалось, я просто спрашивал, уйдут ли лейблы, многие говорили что нет
Аа
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
это правильно) меньше путаницы, да и алгебраической основы тут нет) вот как purescript-io сделано - это очень ок
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Мне лейблы нравились, типа понятно, это в консоль срёт, это в DOM, а это ещё что-то, и можно убрав, к примеру, CONSOLE в main,  убрать все логи. а тут как Эван пришёл и выпилил удобную вещь.
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
Anton Kotenko
Мне лейблы нравились, типа понятно, это в консоль срёт, это в DOM, а это ещё что-то, и можно убрав, к примеру, CONSOLE в main,  убрать все логи. а тут как Эван пришёл и выпилил удобную вещь.
там нет никакой семантической подоплеки, кто как хочет так и ... делает эффекты
источник

l

la gente está muy loca in PureScript — русскоговорящее сообщество
Они это мотивируют тем что row в языке остаются и ты по прежнему можешь так мутить
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
PureScript's effect system is based on row types, and has no semantic or algebraic basis. Often, the effect labels have poorly-defined meanings, and different libraries use completely different labels to represent the same or overlapping effects.
источник

AK

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

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
la gente está muy loca
Они это мотивируют тем что row в языке остаются и ты по прежнему можешь так мутить
вот не понимаю пока как
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
я вот ща в основном с purescript-io работаю, потому что изучаю specular
источник