Описание тега scalaz7

Scalaz предоставляет классы типов и чисто функциональные структуры данных для Scala.
1 ответ

Почему реализация Monaz for Option в Скалазе дважды оценивает функцию f2?

Определение опции моноида скаляза следующее: implicit def optionMonoid[A: Semigroup]: Monoid[Option[A]] = new Monoid[Option[A]] { def append(f1: Option[A], f2: => Option[A]) = (f1, f2) match { case (Some(a1), Some(a2)) => Some(Semigroup[A].app…
02 май '13 в 19:26
1 ответ

Скал Батут и ИО

Этот вопрос связан с другим вопросом, но сводится к гораздо более простому случаю: Я предполагаю следующий импорт: import scalaz._, Scalaz._ import Free._, effect._ У меня есть следующие генераторы: val fromOneIO: () => IO[Int] = { var i = 0; () …
23 апр '13 в 14:12
0 ответов

Monad IO catchAll оператор ведет себя

Я изучаю монадный ввод-вывод scalaZ и не могу понять, как работают операторы catchAll и catchSome. Я ожидал увидеть поведение как onError или onErrorrResumeNext RxJava, но вместо этого не перехватывает throwable, а просто прерывает тест и выдает иск…
22 апр '18 в 17:36
1 ответ

Безопасны ли незаписанные типы тегов?

Недавно я слышал о неупакованных теговых типах в scala, и пока я пытался узнать, как именно это работает, я нашел этот вопрос, который указывает на проблемы, возникающие при реализации в scalaz. Одним из последствий исправления было то, что пришлось…
08 апр '16 в 17:08
0 ответов

Переключение между EitherT и Validation для накопления ошибки или хода

Скажем, у меня есть следующая функция: def getRemoteThingy(id: Id): EitherT[Future, NonEmptyList[Error], Thingy] Учитывая List[Id]Я легко могу получить List[Thingy] используя Traverse[List]: val thingies: EitherT[Future, NonEmptyList[Error], List[Th…
30 апр '15 в 14:02
1 ответ

Монадическое сокращение в государственной монаде

Я застрял, пытаясь уменьшить список внутри монады состояния с помощью функции, возвращающей State: def op(t1: T, t2: T): State[S, T] val list: State[S, List[T]] Я хотел бы сократить список, чтобы получить State[S, T]
19 дек '15 в 20:47
2 ответа

Конвертировать scala 2.10 future в scalaz.concurrent.Future // Задача

Кто -нибудь пришел к фрагменту кода, как правильно преобразовать Scala's Future (2.10) в новое scalaz7 будущее? Я знаю, как конвертировать скалярное будущее через скала Promise в скала Будущее, но не знаю, как это сделать правильно. Например import …
03 июн '13 в 11:25
1 ответ

Развертывание значения монады Identity

Я немного играл со скалазом и застрял в кажущейся тривиальной проблеме. Я играл с монадой Reader и Kliesli и обнаружил что-то вроде этого: val gr = Reader { (_: Int) + 1 } val a = gr(1) Это покорно отвечает: a: scalaz.Id.Id[Int] = 2 То, что я пытаюс…
09 дек '18 в 22:51
1 ответ

Почему List является полугруппой, а Seq нет?

Я довольно новичок в скалазе и пытаюсь понять, почему работает следующий код: import scalaz._ import Scalaz._ scala> Map[String,List[String]]() |+| Map[String,List[String]]() res3: scala.collection.immutable.Map[String,List[String]] = Map() но эт…
25 мар '13 в 19:57
1 ответ

Конвертировать вектор в Tuple Scala

Можно ли преобразовать вектор разнородных векторов в список Tuple3 в Scala? т.е. Vector(Vector(1,"a","b"),Vector(2,"b","c")) to List(Tuple3(1,"a","b"),Tuple3(2,"b","c"))
27 ноя '14 в 06:20
1 ответ

Scalaz.NonEmptyList против Scala.List?

Может кто-нибудь объяснить, почему я должен использовать Скалаз NonEmptyList над Скалой List? В неизменяемом приложении не имеет большого смысла создавать пустое List Так что я должен всегда использовать NonEmptyList в неизменном приложении? Зачем е…
10 мар '16 в 06:36
2 ответа

Монадическая складка с Государственной монадой в постоянном пространстве (куча и стек)?

Можно ли выполнить складывание в монаде состояния в постоянном стеке и пространстве кучи? Или другая функциональная техника лучше подходит для моей проблемы? В следующих разделах описывается проблема и мотивирующий сценарий использования. Я использу…
1 ответ

Как реализовать Scalaz Applicative?

У меня тип клиента QueryResult который type QueryResult[A] = A org.scalactic.Or One[Error] При выполнении нескольких запросов я получаю List[QueryResult[A]], но я хочу QueryResult[List[A]], Я могу реализовать sequence метод для Listно я хотел бы бол…
23 июн '16 в 09:24
0 ответов

Обход потока памяти с эффективным использованием памяти с использованием класса типов скалаза Traverse

Я пытаюсь пройти / упорядочить большой поток (например, scala.collection.immutable.Stream) используя Scalaz' (версия 7.1.2) Traverse класс, но я постоянно сталкиваюсь с java.lang.OutOfMemoryError: GC overhead limit exceeded вопрос. Мой обход выгляди…
22 май '15 в 21:28
1 ответ

Как мне объявить класс дел Scala экземпляром полугруппы Скалаза?

У меня есть тип, определенный следующим образом: import scalaz._, Scalaz._ case class MyInt(i : Int) Я хочу сделать пример Semigroup, Я попробовал это: object MyInt { implicit def myIntSemigroup: Semigroup[MyInt] = new Semigroup[MyInt] { def append(…
25 июн '15 в 08:24
1 ответ

Снятие функции, которая принимает неявный параметр, используя функтор (Scalaz7)

Только начал изучать Скалаз. Вот мой код trait Monoid[A] { def mappend(a1: A, a2: A): A def mzero: A } object Monoid { implicit val IntMonoid: Monoid[Int] = new Monoid[Int] { def mappend(a1: Int, a2: Int): Int = a1 + a2 def mzero: Int = 0 } implicit…
11 июл '16 в 06:20
1 ответ

Создайте OptionT[Future, A] из нижестоящего типа

Я довольно новичок в скалазе, и я пытаюсь понять, как преобразовать различные типы в монадные преобразователи. Я застрял при попытке преобразовать Int к OptionT[Future, Int]или даже EitherT[Future, String, Int], Я нашел кучу уроков /SO ответов, кото…
28 авг '15 в 10:42
2 ответа

Как вернуть кортеж внутри EitherT

Я использую EitherT в Scalaz 7 для создания сложных понятий, которые смешивают State и \/. Все идет нормально; Я получаю то, что в основном: State[MyStateType, MyLeftType \/ MyRightType] и это позволяет мне создавать для-понимания, которые имеют хор…
02 июл '13 в 05:43
1 ответ

Как использовать IO с итерациями Scalaz7 без переполнения стека?

Рассмотрим этот код (взятый отсюда и измененный для использования байтов, а не строк символов). import java.io.{ File, InputStream, BufferedInputStream, FileInputStream } import scalaz._, Scalaz._, effect._, iteratee.{ Iteratee => I, _ } import s…
22 апр '13 в 01:26
1 ответ

Метод добавления из скалярного потока, вызывающий бесконечный цикл

Я использую этот код с сайта скалярного потока, он работает с методом, но он не работает, когда я пытаюсь использовать append, он выглядит как бесконечный цикл и никогда не заканчивается. Причина, по которой я хочу использовать метод добавления, сос…
23 окт '14 в 03:39