Обзор экземпляров класса типа 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 теперь предоставляет экземпляр монады для Parser.)

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

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

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


person Travis Brown    schedule 14.09.2012    source источник
comment
Проголосуйте за закрытие, потому что на этот вопрос нельзя было ответить напрямую. Переместите его в списки рассылки Scala.   -  person kiritsuku    schedule 14.09.2012
comment
@sschaef: я признаю, что ожидал такого ответа, и я согласен, что он, возможно, близок к границе, но я думаю, что это практический вопрос, на который можно ответить, вряд ли он вызовет расширенные дебаты и т. д. (также я внес сюда больше, чем в список Scalaz, и надеялся нажиться на этом.)   -  person Travis Brown    schedule 14.09.2012
comment
Разве это не было бы более полезным в качестве репозитория на Github? Тогда пользователи могли бы совместно работать над ними и легче вставлять их в свой собственный код?   -  person Martin McNulty    schedule 14.09.2012
comment
@MartinMcNulty: Да! Это именно то, что я ищу — ссылку на что-то подобное или что-то в этом роде.   -  person Travis Brown    schedule 14.09.2012
comment
Сбор под общим проектом может быть нецелесообразным, так как разные библиотеки могут отличаться по скорости выпуска. Однако сделать это вики сообщества может быть хорошей идеей.   -  person ron    schedule 14.09.2012
comment
Кстати, я написал экземпляры для Dispatch 0.9, но еще не опубликовал их. Не то, чтобы их было слишком сложно написать :)   -  person ron    schedule 14.09.2012
comment
@ron: Я был бы более чем счастлив, если бы этот вопрос также был вики сообщества, но этот вариант, похоже, исчез.   -  person Travis Brown    schedule 15.09.2012
comment
@ron: И да, большинство из них довольно просто написать, но нам все равно кажется стыдным продолжать писать их снова и снова.   -  person Travis Brown    schedule 15.09.2012
comment
@sschaef: не вижу причин закрывать. Есть куча таких вопросов: какие N ваши самые любимые xy для def. Здесь xy = экземпляры de = scalaz.   -  person ron    schedule 15.09.2012
comment
@TravisBrown Я думаю, мне придется стиснуть зубы и добавить зависимость от Scalaz к бесформенному (или, по крайней мере, к какому-то подпроекту), чтобы мы могли сделать это правильно. Перейдите к бесформенному списку рассылки, и мы сможем взять его оттуда.   -  person Miles Sabin    schedule 15.09.2012


Ответы (1)


Вики сообщества экземпляров Scalaz

Скалаз 7 экз.

  • Экземпляры класса Easy Case (Monoid, Заказ, возможно сериализация и др.) - бесформенный
  • Играть в! 2 экземпляра — play-scalaz (монада Promise, сериализаторы Json)
  • Будущее Akka 2.x — akkaz
person Community    schedule 14.09.2012