Подтвердить что ты не робот

Округление экземпляров класса типа Scalaz для других библиотек

Я часто нахожусь в желании (а затем обычно пишу) Scalaz типа экземпляров класса для классов в других Scala или Java-библиотеках, Чтобы привести несколько примеров:

Моноидный экземпляр для Shapeless HList предоставляет вам моноидные экземпляры для классов case с правильно набранными членами почти бесплатно.

Пример прикладного функтора для Lift Box позволяет вам, например, упорядочить список ящиков:

scala> val boxen: List[Box[Int]] = Full(1) :: Full(2) :: Full(3) :: Nil
boxen: List[net.liftweb.common.Box[Int]] = List(Full(1), Full(2), Full(3))

scala> boxen.sequence
res0: net.liftweb.common.Box[List[Int]] = Full(List(1, 2, 3))

Экземпляр монады для Dispatch 0.9 PromisePromise[Either[Throwable, _]] и т.д.) чрезвычайно полезен для всех видов вещей.

Приложение аппликативный функтор для стандартной библиотеки Parser делает аппликативный анализ более кратким и элегантным. (Я только заметил, что Scalaz 7 теперь предоставляет экземпляр monad для Parser.)

И так далее...

Эти примеры почти всегда очень универсальны, и я уверен, что многие из нас много писали много раз. То, что я ловушку с этим вопросом, - это какой-то агрегатор или центр обмена данными для экземпляров класса типа Scalaz. Я не уверен, что такая вещь существует - я, конечно же, не смог найти ничего подобного, но для меня было бы полезно только сбор ссылок на сообщения в блогах, репозитории GitHub или другие ресурсы.

Я бы предпочел Scalaz 7 экземпляров, но я возьму все, что могу.

4b9b3361

Ответ 1

Сообщество wiki экземпляров Scalaz

Scalaz 7 экземпляров

  • Примеры экземпляров класса case (Monoid, Заказ, возможно, сериализация и другие) - shapeless
  • Играть! 2 экземпляра - play-scalaz (Promise monad, сериализаторы Json)
  • Akka 2.x Future - akkaz