Публикации по теме 'either'


Умножение больших чисел в стиле функционального программирования
Простая, на первый взгляд, задача - умножение чисел, может доставить массу проблем, если эти числа большие. С такой задачей я столкнулся на Сodewars . Помимо основных правил умножения, были следующие условия: Аргументы передаются в виде строк. Цифры могут быть очень большими. Ответ должен быть возвращен в виде строки. Возвращаемое «число» не должно начинаться с нулей, например. 0123 недействителен. Есть несколько вариантов решения этой проблемы. Самое популярное решение от..

Вопросы по теме 'either'

Понимание того, как Либо является экземпляром Functor
В свободное время я изучаю Haskell, так что это вопрос для начинающих. В своих чтениях я наткнулся на пример, иллюстрирующий, как Either a становится экземпляром Functor : instance Functor (Either a) where fmap f (Right x) = Right (f x)...
8800 просмотров
schedule 07.05.2023

Как я могу собрать левую букву Either из кортежа?
После сопоставления группы Either, имеющих тип Either [String, A] (где A - более одного типа), я хотел бы собрать все строки слева в списке. (a, b, c, d, e) match { case (Right(a), Right(b), Right(c), Right(d), Right(e)) => { "All good,...
1044 просмотров
schedule 14.07.2023

Цепочка проверки в Scala
У меня есть Scala case class , содержащий информацию о конфигурации командной строки: case class Config(emailAddress: Option[String], firstName: Option[String] lastName: Option[String]...
1423 просмотров
schedule 09.08.2023

Объединение Futures (Twitter) и Both в Scala
Мы используем фьючерсы Twitter (как часть стека Finagle), и мне не нравится концепция использования (бизнес) исключений для управления потоком нашего приложения, потому что исключения не отображаются в сигнатурах методов. Поэтому у меня возникла...
1579 просмотров
schedule 06.02.2024

Ошибка при компиляции печати Любое значение
Я пытаюсь скомпилировать простой фрагмент кода. main = (putStrLn . show) (Right 3.423) Компиляция приводит к следующей ошибке: No instance for (Show a0) arising from a use of `show' The type variable `a0' is ambiguous Possible fix: add a...
84 просмотров
schedule 05.03.2023

Монады Haskell либо
У меня есть небольшая проблема с типами данных в Haskell, я думаю, что я должен сначала опубликовать код, чтобы помочь понять проблему. helper :: (MonadMask a, MonadIO a, Functor a) => Expr -> String -> a (Either InterpreterError Int)...
300 просмотров
schedule 14.10.2022

Что мне следует использовать: монадный трансформер или монадный преобразователь ErrorT?
Я прочитал этот вопрос . Вот цитата принятого ответа: Этот экземпляр был добавлен в базу 4.3.x.x, которая поставляется с ghc 7. Между тем, вы можете использовать экземпляр Either напрямую, или, если вы используете Either для представления...
514 просмотров
schedule 09.07.2023

Как разбить список [Либо [A, B]]
Я хочу разделить List[Either[A, B]] на два списка. Есть ли способ лучше ? def lefts[A, B](eithers : List[Either[A, B]]) : List[A] = eithers.collect { case Left(l) => l} def rights[A, B](eithers : List[Either[A, B]]) : List[B] =...
9072 просмотров
schedule 17.04.2023

Почему «Или» является производным от «Шоу», а «Может быть» — нет?
Документация по Either и Maybe указывают, что у них есть экземпляры Show . Either определяется как производное от Show , просто: data Either a b = Left a | Right b deriving (Eq, Ord, Read, Show, Typeable) Тем не менее,...
359 просмотров
schedule 25.11.2023

Как сделать аналог Either?
Компилятор жалуется на Left (e): выражение типа Left (List [ServiceError, Nothing]) не соответствует ожидаемому типу Either [E, R] sealed trait ServiceResult[+E <: List[ServiceError], +R ] { def toEither: Either[E , R] = this match {...
137 просмотров
schedule 01.06.2023

Преобразователи монад - Scalaz - List[Future[String\/String]] to Future[String\/String]
Интересно, как я могу преобразовать List[Future[String\/String]] в Future[String\/String] . На самом деле я просто хочу применить для каждого элемента списка EitherT.apply . То, что я хочу, выглядит так: val result: EitherT[Future,...
151 просмотров

Как карта только оставила значение из scala Either?
Рассмотрим код: val some: OneCaseClass Either TwoCaseClass = ??? val r = some.left.map(_.toString) Почему тип r Serializable with Product with Either[String, TwoCaseClass] вместо Either[String, TwoCaseClass] ? Как отобразить только...
11219 просмотров
schedule 24.02.2022

Использование Either и немедленное возвращение ошибки
У меня есть функция, которая возвращает экземпляр Either, где левая сторона представляет исключение / ошибку, а вторая сторона хранит возвращаемое значение. Если экземпляр Either был создан для ветви Error, я хочу немедленно вернуться. Если...
267 просмотров
schedule 10.12.2022

Поднимите Либо до ExceptT автоматически
Допустим, у меня есть этот (возможно, вводящий в заблуждение) фрагмент кода: import System.Environment (getArgs) import Control.Monad.Except parseArgs :: ExceptT String IO User parseArgs = do args <- lift getArgs case safeHead args...
1443 просмотров

Как использовать возвращаемое значение из функции, возвращающей Future (Either [A, B]) в scala?
У меня есть функция ниже. def get(id: Int): Future[Either[String, Item]] = { request(RequestBuilding.Get(s"/log/$id")).flatMap { response => response.status match { case OK =>...
753 просмотров
schedule 21.05.2022

Haskell: обработка результата в результате вычислений
Недавно я вернулся к Haskell и создал парсер/интерпретатор игрушечного языка программирования. Использование Parsec для лексирования и парсинга и отдельного интерпретатора. Я сталкиваюсь с некоторыми проблемами с передачей результата от анализатора...
698 просмотров
schedule 18.03.2023

почему я не могу извлечь кортеж из любой проекции внутри для понимания с помощью сопоставления с образцом?
Почему это работает: val somePair: Option[(String,String)] = Some(("John", "Doe")) (for { pair <- somePair.toRight("Hello unknown!").right } yield s"Hello ${pair._1} ${pair._2}!").merge Но это не так: val somePair:...
413 просмотров
schedule 12.08.2022

Простой способ сузить типы слева и справа на любом
Предположим, у вас есть следующий экземпляр Either[A1,B2] , где A1 и B2 map привязаны к Either[A,B] , где A и B имеют общий подтип S . Есть ли способ легко сузить типы A и B до S ?
93 просмотров
schedule 24.07.2023

Есть ли способ составить потенциально неудачные операции в Go?
Большинство кодов go, которые я читал, содержат частые вхождения следующего шаблона: result1, err := failingOp1() if err != nil { return err } dependingResult, err := failingOp2(result1) if err != nil { return err } // do stuff with...
330 просмотров
schedule 28.03.2023

Прохождение оператора Left в любом
Учитывая эти два метода, которые используют Either , во втором методе мне нужно передать ошибку, используя Left(error) => Left(error) . Есть ли способ опустить это во втором методе (или использовать более элегантный код), поскольку оператор...
303 просмотров
schedule 21.02.2024