Size: a a a

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

2020 May 18

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Я что-то не смог
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Есть либа (была). Там нужно таскать функцию a -> comarable с собой постоянно :)
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Ну это выход конечно, но рекорд более изящно получается
источник

AP

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

makeDict toKey =
 { insert : ...
 , lookup
 ...
 }

let d = makeDict toString
in d.empty
 |> d.insert (1, 2) "foo"
 |> d.insert (5, 7) "bar"
источник

AP

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

AP

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

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Но тут нужно и отбрасывание ключей. Чтобы можно было удовлетворять интерфейсы по одному:
d = withKey toString <| withMonoid merge <| {}
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
вот например моноид и семигруп с имплементацией для списка:
type alias Semigroup r a =
   { r | concat : a -> a -> a }

type alias Monoid r a =
   Semigroup { r | mempty : a } a


instance : Semigroup r a -> { mempty : a } -> Monoid {} a
instance { concat } { mempty } =
   { concat = concat
   , mempty = mempty
   }


-- Data.List
semigroup : Semigroup {} (List a)
semigroup =
   { concat = (++) }


monoid : Monoid {} (List a)
monoid =
   Data.Monoid.instance semigroup { mempty = [] }
источник

AP

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

AP

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

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
не выйдет, надо целиком брать )
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
но на безрыбьи и рак рыба)) Если уж прямо вообще нуу очень надо то можно и так
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
не для обычной алгебры, а для какого-то своего типа конечно
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
говорят в Агде что-то такого же плана делают, но у них сахарок присутствует
источник
2020 May 20

PS

Pavel Shilyagov in Elm Lang сообщество разработчиков
источник

AK

Andrey Koppel in Elm Lang сообщество разработчиков
Да, с большим с хот свапом.
источник

AK

Andrey Koppel in Elm Lang сообщество разработчиков
Полностью без ЖС, это конечно огромное ограничение
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Честно говоря, очень сомнительная идея
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
На бэке нужна расширяемая система эффектов. Или IO fallback, как в Haskell
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Иначе это будет всего лишь поделка для очень узкого круга задач.
источник