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