Size: a a a

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

2018 August 29

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
можешь тут дозадавать вопрос)
https://discourse.purescript.org/t/halogen-5-pager-library/338/4
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
есть роу слотов, роу компонентов и роу страниц.
также есть некий q (запрос) и m -> m. oк
все Pager's реализуют ф-цию renderRL, которая хочет рекорд с компонентами, и "открытое множество типов" (ака "вариант") "страниц" и возвращает компонент. ок
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
о, спасибо, не видел поста
источник
2018 September 05

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
а как настроить pulp server чтобы он следил ещё за одним каталогом кроме src? запускаю так:

pulp --watch server -I ./example и он компилирует ./example/**/**.purs, но за изменениями в каталоге example не следит. изменения в ./src/**/**.purs триггерят ребилд. в bower.json:

  "main": [
   "example/Main.purs"
 ],
источник

AK

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

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
сори, не могу подсказать, тк пользуюсь psc-ide (purs ide) %)
там вообще все равно что в каких директориях.
из емакса жму "C-c-b" и смотрю результат в браузере :)
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
там есть --src-path https://github.com/purescript-contrib/pulp/blob/4cbe7e9ad0200cd35767ddbf66afcd872eca3cc3/src/Main.purs#L90 и еще есть --main / -m на случай, если нужно назвать основной модуль как-то иначе
но я не пробовал --src-path https://github.com/search?q=%22--src-path%22+language%3Ajson&type=Code, хм, а если --src-path example/src --include src ?
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
В --src-path может быть только один путь и это остаётся src, только Main-модуль вовне.

А вот --include/-I подходит по смыслу, но относится к server и он инлюды компилит, а --watch относится глобально к pulp. видимо --watch не "видит" --include.
источник
2018 September 06

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Попробовал https://github.com/natefaubion/purescript-spork, довольно интересно, архитектура действительно Эльмовая — команды обёрнуты в Effect и выходят из update вместе с моделью в виде :

{ model -- чистая модель без эффектов
, effects : Batch EffectfulMessage | mempty  -- уходят в очередь эффектов, которые выполняются сразу после `update`
}


Здесь наглядно видно: https://github.com/natefaubion/purescript-spork/blob/master/examples/todo-mvc/src/Main.purs
источник

ЗП

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

VY

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

к

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

к

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

к

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

someLogic = do
 -- or takeLatest for resetting scenario state
 a <- awaitAction Action1
 try $ makeRequest
 path1 . in . state .= a
 b <- awaitAction Action2
 path2 . in . state %= succ


все эти бизнес-скрипты запускаются параллельно. Там в основе те же автоматы (через них идут генераторы, которые уже служат основой для императивности), но монадичность позволяет делать сложные сценарии БЕЗ промежуточный стейтов (точнее они есть, но генерируются автоматически, мы их в коде не видим)

при этом промежуточные стейты в такой реализации все еще доступны (как и раньше, вручную), то есть это решение строго больше

редакс-саги в этом плане концептуально мне нравятся, не нравятся реализацией

на стримах с ду-нотацией наверняка тоже что-то делали подобное
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
кана
это не позволяет описывать сложную логику as is, приходится вручную запоминать промежуточный стейт между экшонами в виде мусорных стейтов (делать конечный автомат)
Вот у меня сейчас почти всё API это `... -> Model -> ExceptT Error Effect Model`, да
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
И на Spork это не очень ложится
источник

к

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

AK

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

AK

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

к

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