169 похожих чатов

А как бы вылезти из ИО, что то типа IO

-> Ether или в какую сторону смотреть ? что то туплю

14 ответов

77 просмотров

Из IO достать значение через <-, и передать в функцию, которая принимает значение и возвращает Either

Fedor- Автор вопроса
Fedor
спасибо, это в сторону монад

буритто с котятами или цветных функций =)

Fedor- Автор вопроса
саша кремов
Из IO достать значение через <-, и передать в функ...

что то туплю вот есть код getUrlResult :: Url -> Pos -> (NumberedUrlList, Url, Pos) getUrlResult url pos = (zip [(pos + 1) ..] urlList, nextUrl, (pos + (length urlList))) where (urlList, nextUrl) = spjPapers url все бы хорошо, но spjPapers возращает IO ([HtmlText], HtmlText) вот и вопрос, как бы это связать, хочеться хотябы майби

Fedor
что то туплю вот есть код getUrlResult :: Url -> ...

никак. надо, чтобы getUrlResult работала тоже в контексте IO, то есть getUrlResult :: Url -> Pos -> IO (NumberedUrlList, Url, Pos)

Fedor- Автор вопроса
Cheese Syrowiecki
никак. надо, чтобы getUrlResult работала тоже в ко...

то есть получается практически все я перепишу на контекст IO, мне кажеться это не хорошо, и я как то не так проектирую функции, что практически все в контексте ио

Fedor
то есть получается практически все я перепишу на к...

да, получается так. либо наоборот, убирай IO оттуда, где оно не нужно

Fedor- Автор вопроса
Cheese Syrowiecki
зачем IO в spjPapers?

оно туда попало из resp <- getHtml url а туда из resp <- httpLBS request через getResponseBody resp, то есть ИО двигается вверх... Что кажеться не хорошим

Fedor
оно туда попало из resp <- getHtml url а туда ...

да, это нехорошо. обычно разделяют IO и логику. на верхнем уровне в контексте IO получают сырые данные из сети, а их разбор уже в чистой функции идёт

Fedor- Автор вопроса
Cheese Syrowiecki
да, это нехорошо. обычно разделяют IO и логику. на...

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

Fedor
Вот и пытаюсь понять как сделать переход, понятно ...

какой переход? просто пихать одно в другое не получается? main = do -- input rawData <- getRawData -- pure logic let result = parse rawData -- output print result

Fedor- Автор вопроса
Cheese Syrowiecki
какой переход? просто пихать одно в другое не полу...

Это понятно, но нужен цикл, получения следуюищх данных на основе предыдущих, я пытался это все организовать, за счет формирования результатов по требованию, То есть постепенно формируя полный лист, но как только внизу, стало ИО, дальше либо его тащить наверх, либбо признать что сделал не правильно и переделать, склоняюсь к последнему . Спрашиваю про патерны

Fedor
Это понятно, но нужен цикл, получения следуюищх да...

нет паттернов, тут надо применять SOLID, а именно — одно логическое действие на функцию, не соединять несоединяемое

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта