Вопросы по теме 'io-monad'

Снятая «если» -функция ведет себя неожиданно
в своей программе я использую функцию if' , определенную в одном из модулей, вместо встроенной конструкции if-then-else . Он определяется тривиально и отлично работает. Однако есть одно место в коде, где мне нужно применить его к значениям монад...
48 просмотров
schedule 29.07.2023

Тестирование класса типов с помощью MonadIO: ни экземпляра, ни ошибки метода по умолчанию
У меня есть класс типов, который выполняет некоторый ввод-вывод. Я немного обобщил это, используя MonadIO : class MonadIO m => MonadDB m where getSomething :: String -> m Something getSomething s = -- do some IO stuff with liftIO...
794 просмотров
schedule 09.11.2022

Пример цикла while в Haskell с использованием монад
Я хочу написать цикл в haskell, используя монады, но мне трудно понять концепцию. Может ли кто-нибудь предоставить мне один простой пример цикла while, когда выполняются некоторые условия, которые включают действие ввода-вывода? Мне нужен не...
1382 просмотров
schedule 26.09.2023

Идиоматический способ реализации m (t a) -> (a -> m (t b)) -> m (t b)
Функция bind ( >>= ) имеет сигнатуру: m a -> (a -> m b) -> m b Однако мне нужна функция с подписью: m (t a) -> (a -> m (t b)) -> m (t b) В частности, у меня есть функция, которая, учитывая целое число,...
113 просмотров
schedule 12.08.2022

Развернуть значение из операции ввода-вывода позже
Здравствуйте, мне было интересно, как вы можете развернуть значение позже в монаде IO? Если a<-expression связывает результат с a , то нельзя ли использовать (<-expression) в качестве параметра для данного метода, например: method...
151 просмотров
schedule 16.07.2023

Как пример Simple IO Type избавиться от побочных эффектов в FP в Scala?
Я читаю главу 13.2.1 и наткнулся на пример, который может обрабатывать ввод ввода-вывода и тем временем избавляться от побочных эффектов: object IO extends Monad[IO] { def unit[A](a: => A): IO[A] = new IO[A] { def run = a } def...
191 просмотров
schedule 13.03.2024

Как работает monadicIO
У меня есть следующий код fastShuffle :: [a] -> IO [a] fastShuffle a = <some code> prop_fastShuffle_correct :: [Int] -> Property prop_fastShuffle_correct s = monadicIO ( do sh <- run (fastShuffle s) return ( True...
81 просмотров
schedule 09.07.2023

Что такое идиоматический способ Haskell для работы с предикатами в IO?
Для какой-то операции с файлом мне нужно проверить, существует ли файл, был ли он изменен, и только потом выполнять над ним какую-то операцию. Мой код новичка на Haskell выглядит следующим образом (упрощенно): someFileOp ::FileContents ->...
110 просмотров

Что такое канал ошибок ZIO и как понять, что в него вставлять?
ZIO ( https://zio.dev/ ) - это среда Scala, в основе которой лежит структура данных ZIO[R, E, A] и ее сайт предоставляет следующую информацию по трем параметрам: ZIO Тип данных ZIO[R, E, A] имеет три параметра типа: R - Тип среды...
337 просмотров