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

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

Хорошее введение в скалаз

Недавно скалаз попался на глаза. Это выглядит очень интересно, но я не нашел хорошего представления о библиотеке. Похоже, в скалазе много идей из хаскелла и математики. Большинство статей, которые я нашел, предполагают, что вы уже чувствуете себя ко…
01 фев '11 в 14:22
1 ответ

В чем разница между Task и IO в Scalaz?

Эти два типа Скалаз scalaz.concurrent.Task[+A] scalaz.effect.IO[A] кажутся очень концептуально похожими. Они оба: Представлять потенциально побочные вычисления Произведите успех (A) или неудача (Exception) результат Есть Monad экземпляры Может быть …
28 авг '15 в 08:26
3 ответа

Скаладская государственная монада, примеры

Я не видел много примеров монады состояния скалаза. Этот пример есть, но его трудно понять, и, кажется, есть только один вопрос о переполнении стека. Я собираюсь опубликовать несколько примеров, с которыми я играл, но я бы приветствовал дополнительн…
12 окт '11 в 02:56
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 ответ

Соответствие по крайней мере 1 из 3 регулярных выражений Scala с использованием аппликативного функтора

У меня есть три регулярных выражения Scala, которые мне нужно проверить, чтобы убедиться, что любое из них соответствует заданной строке. Я знаю, что могу сделать следующее: val matches = R1.findFirstIn(myString).isDefined || R2.findFirstIn(myString…
14 дек '12 в 17:10
6 ответов

Scala: объединить карты по ключу

Скажем, у меня есть две карты: val a = Map(1 -> "one", 2 -> "two", 3 -> "three") val b = Map(1 -> "un", 2 -> "deux", 3 -> "trois") Я хочу объединить эти карты по ключу, применяя некоторую функцию для сбора значений (в данном конкре…
13 окт '11 в 13:55
1 ответ

Поведение в скалазе не понято

Вопрос от неофита ScalaZ здесь. Я не совсем понимаю, как: 1.some или дизъюнкция, связанная: "Success!".right Работа. Я не могу найти какие-либо неявные преобразования, которые позволят поведение выше. Я знаю, как их использовать, но я заинтересован …
14 мар '17 в 10:04
1 ответ

Либо, попробуй, и валидация в Scala

Меня смущает Either, Try, а также Validation из scalaz, Кажется, никто из них не делает то, что мне нужно. Что мне нужно, это простая монада Result[E, R] где E это тип ошибки и R тип результата Either не подходит, потому что это не монада (но прогно…
13 мар '14 в 12:24
0 ответов

Преимущества использования \/ в качестве аппликативного функтора в Scalaz

Это продолжение моего предыдущего вопроса Предположим, у меня есть две функции, которые возвращают \/ (увидеть ниже). Мне нужно позвонить им обоим и "быстро провалиться". type CheckResult = String \ / Unit def checkX (): CheckResult =... def checkY …
01 апр '14 в 05:26
1 ответ

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

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

Какой монадный трансформатор использовать?

Я пытаюсь написать функцию проверки ниже, чтобы проверка прекратилась после первой обнаруженной ошибки. Тип возврата three отличается от других функций. Какой монадный преобразователь я использую для компиляции этого кода? import scalaz._ import Sca…
17 фев '17 в 05:41
1 ответ

Как реализовать кеширование с помощью Kleisli

Я следовал принципу дизайна из книги " Функциональное и реактивное моделирование". Таким образом, все методы обслуживания возвращаются Kleisli, Вопрос в том, как добавить к этим сервисам обновляемый кеш. Вот моя текущая реализация, есть ли лучший сп…
06 апр '16 в 20:36
1 ответ

Стандартный способ объединения состояний в скаляр

Предположим, у вас есть Nel состояний (Nel означает NonEmptyList, чтобы сделать вещи короче), и вы хотите объединить состояния в одно состояние, используя некоторую функцию f для левой части состояния и g для правой части государство. Итак, вы хотит…
30 апр '15 в 14:50
0 ответов

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

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

Эффекты использовать для обертывания нечистых методов?

Я пытаюсь понять, как использовать эффект монады (cats.effect.IO или же scalaz.IO не имеет значения). Представьте, что у меня есть следующий метод: def extract(str: String): String = { if(str.contains("123")) "123" else throw new IllegalArgumentExce…
3 ответа

В Scala обработайте список элементов с помощью операции Try и сохраните исходный элемент, чтобы сообщить о возможном сбое.

У меня есть список строк, и я хочу сделать несколько преобразований для каждого элемента. Я хочу сохранить исходную строку, чтобы я мог показать ее, если она была недействительной. Пример следующим образом: import scala.util.Try val list = List("&lt…
14 окт '16 в 12:55
1 ответ

Как использовать скалаз IList

scala.collection.immutable.List определяет indexWhere, который возвращает индекс первого элемента этой общей последовательности, который удовлетворяет предикату p или -1, если ни один не существует: def indexWhere(p: (A) ⇒ Boolean): Int Итак, я мог…
15 дек '16 в 09:58
2 ответа

Хвост-рекурсия и скалярные обещания

В настоящее время я играю с неблокирующими фьючерсами Scalaz aka. Обещания. Я пытаюсь сделать следующую функцию хвостовой рекурсивной: @tailrec private def repeat( res: Promise[I] ):Promise[I] = res map p flatMap { (b:Boolean) => if( b ) repeat( …
09 май '11 в 12:59
1 ответ

Что означает "эффект" в "скаляр-эффекте"

Я вижу scalaz имеет модуль scalaz-effect: scalaz-effect: структуры данных для представления и составления эффектов ввода-вывода в системе типов. Я не совсем уверен, что делает effect значит здесь. Это особая концепция? Или просто effect в side-effec…
07 июл '15 в 02:11
2 ответа

Тест Sbt генерирует IncompatibleClassChangeError при использовании Scalaz

Sbt тестовые броски java.lang.IncompatibleClassChangeError: Found class scalaz.Memo, but interface was expected когда скалас это зависимость. sbt dependency-graph: [info] Loading global plugins from /Users/ixaxaar/.sbt/0.13/plugins [info] Loading pr…
18 авг '15 в 10:57