Size: a a a

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

2018 July 19

VY

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

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Скажите, а что можно почитать про имплементацию сложных API (операции над древоподобными структурами например) на таких языках как PS? Ну вот типа Trello Monad in the Dark
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
я вроде прочитал по диагонали, но не особенно вдавался в детали, но там расчет на читателя из жс мира, т.е все довольно обычно: Aff, ReaderT
мне обычно ничего сложнее чего-то типа такого sequence ⊙ parTraverse (API.getTicker currencies) symbols не требуется, и у меня есть AppM:

newtype AppM a = AppM (ReaderT Environment Aff a)
источник

VY

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

VY

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

AK

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

Structure { things: List Thing, somethingRelatedToOtherThings: ... }

Thing { otherThings: List OtherThing }

build = do 
    thing <- addThing ...
    otherThing <- addToThing thing ...
    modifyThing thing ...
    modifyOtherThing otherThing ...
    pure ..
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
а эти addThing, addToThing это:
... → Aff (Either Error Thing)
Thing → ... → Aff (Either Error Thing)
соответственно? или что-то другое?
вроде все как обычно: в -parallel есть вот эти все ф-ции parallel, parTraverse, sequential, etc, если нужно как-то конкурентно что-то делать со структурами данных (точнее "for parallel composition and racing of asynchronous computations" %)), в -aff есть runAff, forkAff, launchAff, fiber, ... , etc для работы с асинхронными эффектами
источник

VY

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

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Vasiliy Yorkin
а эти addThing, addToThing это:
... → Aff (Either Error Thing)
Thing → ... → Aff (Either Error Thing)
соответственно? или что-то другое?
вроде все как обычно: в -parallel есть вот эти все ф-ции parallel, parTraverse, sequential, etc, если нужно как-то конкурентно что-то делать со структурами данных (точнее "for parallel composition and racing of asynchronous computations" %)), в -aff есть runAff, forkAff, launchAff, fiber, ... , etc для работы с асинхронными эффектами
все функции планировал как ... -> Structure -> Structure. Но может быть и Aff, да. Параллельно/конкуррентно не надо, последовательно подойдёт, посмотрю, спасибо
источник

AK

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

AK

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

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Ну то есть тип Structure можно менять свободно, главное чтобы там этот рекорд был и чтобы Structure менять и на modifyOtherThing и на addToThing...
источник

AK

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

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
для разбора жсона я пользуюсь argonaut-core + argonaut-codecs, какое-то время назад пользовался -simple-json, но я слишком тупой для него и как только нужно сделать что-то по-своему я затупливал на часы, поэтому щас просто пишу явно все ручками
источник

VY

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

VY

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

AK

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

AK

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

AK

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

AK

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