Size: a a a

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

2019 July 31

AO

Alexey Otts in Elm Lang сообщество разработчиков
Тайп класс говорит нам, что такой то тип обладает такими то свойствами. И был введён для параметрического полиморфизма в хачкеле
источник

AO

Alexey Otts in Elm Lang сообщество разработчиков
Тут он конечно выглядит немного как с утиной типизацией, но всё же по мне под определение подподает
источник

AO

Alexey Otts in Elm Lang сообщество разработчиков
Иначе бы не было никакого параметрического полиморфизма в елме
источник

I

Igor in Elm Lang сообщество разработчиков
Alexey Otts
Тут он конечно выглядит немного как с утиной типизацией, но всё же по мне под определение подподает
Ну ты сделай мне пример без List
источник

RT

Roman Truschev in Elm Lang сообщество разработчиков
Такой вот вопрос, я понял что также как и автор этого https://discourse.elm-lang.org/t/any-disadvantage-in-always-using-html-lazy/4086/8 поста  не совсем понимаю html lazy зачем он был добавлен. Читаю https://guide.elm-lang.org/optimization/lazy.html
источник

RT

Roman Truschev in Elm Lang сообщество разработчиков
Going back to our chair example, we called viewChairAlts ["seiza","chabudai"], but we could just as easily have called lazy viewChairAlts ["seiza","chabudai"] instead.    - какая должна быть причина _не_ делать lazy ?
источник

RT

Roman Truschev in Elm Lang сообщество разработчиков
Или вот кусок By switching viewEntry entry to lazy viewEntry entry we can skip a bunch of allocation that is very rarely useful. - почему как бы это не сделать дефолтным поведением ?
источник

AO

Alexey Otts in Elm Lang сообщество разработчиков
Igor
Ну ты сделай мне пример без List
looool, а interface то и нет никакого в elm, и то что я нагуглил это всёго лишь фантазии автора, расходимся
источник
2019 August 01

AK

Anton Kotenko in Elm Lang сообщество разработчиков
data Constraint fn = Implement fn
type alias ToInt a = a -> Int

animalToInt : Constraint (ToInt AnimalEnum)
animalToInt = Implement \case animal ..

addThingsUp : List (Constraint (ToInt a)) -> Int
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Alexey Otts
Тайп класс говорит нам, что такой то тип обладает такими то свойствами. И был введён для параметрического полиморфизма в хачкеле
Для параметрического полиморфизма с ограничениями! Не нужно путать!
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Неограниченный параметрический полиморфизм в Elm есть
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
И да, тайпклассов или аналога в Эльме нет
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Anton Kotenko
data Constraint fn = Implement fn
type alias ToInt a = a -> Int

animalToInt : Constraint (ToInt AnimalEnum)
animalToInt = Implement \case animal ..

addThingsUp : List (Constraint (ToInt a)) -> Int
Такое плохо работает ибо когерентность не обеспечивается. Иметь хэшмап, в который одни ключи положили, пользуясь одним словариком методов, а другие другим — сомнительная перспектива
источник

YP

Yuriy Pachin in Elm Lang сообщество разработчиков
Кто нибудь пробовал https://github.com/aforemny/elm-mdc
источник

YP

Yuriy Pachin in Elm Lang сообщество разработчиков
?
источник

AK

Anton Kotenko in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
Такое плохо работает ибо когерентность не обеспечивается. Иметь хэшмап, в который одни ключи положили, пользуясь одним словариком методов, а другие другим — сомнительная перспектива
Это немного в шутку было, надеюсь, никто такой код писать не собирается :)
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Как раз использовать такое вполне можно, если нужно в рантайме реализацию интерфейса менять/определять. Просто именно на роль замены тайпклассам такие словарики не подходят
источник
2019 August 06

AK

Anton Kotenko in Elm Lang сообщество разработчиков
tryDecode3
    : String
   -> String
   -> String
   -> (String -> Result err a)
   -> (String -> Result err b)
   -> (String -> Result err c)
   -> (a -> b -> c -> d)
   -> Result err d


можно ли такое как-то упростить? задача попробовать на трёх строках по очереди все декодеры и если в какой-то комбинации удалось, то отдать результат в функцию
источник

AK

Anton Kotenko in Elm Lang сообщество разработчиков
реализовать через фолд по кортежу наверное можно
источник

AK

Anton Kotenko in Elm Lang сообщество разработчиков
а, кортеж нельзя фолдить :)
источник