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

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

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

14 ответов

46 просмотров

Из 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, а именно — одно логическое действие на функцию, не соединять несоединяемое

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
11
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Доброе время суток! у меня тут иноды закончились. и понял почему по сути кстит, я периодически очищаю постгрес и сентри контайнер: postgres=# DELETE FROM nodestore_node WHER...
Юсиф Насиров
9
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
lazarus-3.2.0/gtk, linux патч "имя проекта по умолчанию project1 -> prj" день добрый не нравится "именя проекта по умолчанию" (project1), к.раз приходится переименовывать (н...
livontiy
5
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
Коллеги, а в чём сейчас хорошо писать на перле, в смысле ide? Пробовал в идее с плагином, подсветка есть, даже какие-то предупреждения есть, но рефакторинга считай нет. Перене...
Дмитрий Петров
9
Can I forward ports (including the SSH port) between two machines without SSH? I know I can forward SSH server port from machine A (which blocks all requests by firewall) to ...
required optional
5
Всем вечера. Подскажите как лучше сделать. делаю на Д10 Например будет база данных на SQLite. в ней будет много таблиц. более 50шт Типа справочник. Содержать ID Name Id p...
Андрей Т 🐎
10
Карта сайта