Size: a a a

Elm Lang сообщество разработчиков

2020 September 18

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Слабовато типизировано
источник

AY

Alexey Yurchenko in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
Сделать промежуточную сумму?
типы не учёл. Возможно. Нужно код прикинуть
источник

MP

Max P in Elm Lang сообщество разработчиков
мне бы очень помог пример с Cmd.map, я пока тоже попытаюсь
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Alexey Yurchenko
типы не учёл. Возможно. Нужно код прикинуть
Вот у тебя есть
Cmd a
Cmd b
Cmd c
Cmd d

type State = {
 fieldA : a
 fieldB : b,
 fieldC : c,
 fieldD : d,
}
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Нужно первые четыре упаковать во второе
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Только если все четыре удались
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Т.е. будет Result String State
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
А так как всё отложено, то будет Cmd State
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
И вот задача — получить Cmd State из Cmd a .. Cmd d
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Если трекать все Cmd вручную, то будет n * три стейта для каждого Cmd
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Паттернматчить такое — ужас и треш
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
А ещё и Msg придётся придумать для кажого
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Нужно композить как Random. Или будет куча бойлерплейта
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Но чему я удивляюсь, собсно, Эльм же :)
источник

AY

Alexey Yurchenko in Elm Lang сообщество разработчиков
Мне пока сложно писать в голове fp код. Нужно попробовать через cmd map
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Cmd.map : (a -> b) -> Cmd a -> Cmd b
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Даже два Cmd не скомпозит
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Был бы map2, можно было бы хелперов написать. Но не дали. Специально
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
В Haskell было бы
State <$> async1 <*> async2 <*> async3 <*> async4
 :: Async State
без обработки промежуточных состояний и прочего. Для коротких функций есть liftA2, liftA3, а комбинаторы годятся для функций подлиннее (по кол-ву аргументов).
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Сигналы (помните такие?), кстати, композились нормально. Тогда можно было собрать несколько запросов в один комплексный ответ.
источник