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

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

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

14 ответов

48 просмотров

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

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

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

generic procedure function test<T>(param: T); type case T of longint: NewT = word; longword: NewT = byte; end; var v1: NewT; Как это можно сделать? Чтобы у меня...
notme
20
Интересно, нет ли какого-то способа получить из dll не адрес самой метки, а адрес со смещением?
The Bird of Hermes
54
Делал задачу вот такую https://stepik.org/lesson/4985/step/9?unit=1083 получилось такое https://play.haskell.org/saved/ipKrepqe оно работает, тестов много не писал, но работае...
Fedor
22
Похоже опять туплю задача https://stepik.org/lesson/5431/step/8?unit=1132 код и его работа https://play.haskell.org/saved/lmYTShXM на мой взгляд все правильно, и даже избыто...
Fedor
8
что-то я не понимаю, в линуксе отладочную информацию как убрать из бинаря? он что с этой опцией, что без - одного и того же (достаточно большого) размера (да, я про лазарь)
Iluha Companets
13
Hey Does anyone know how can I receive push notifications from Github on my account? The official Github android app doesn't send notifications, and I don't use the email bec...
Jacob
10
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
58
задача какая - что ты дальше с этой переменно будешь делать? Чем вот так не устраивает? var v1: T;
Александр (Rouse_) Багель
6
Как в webstorm включить фичу, чтобы прямо в коде можно было видеть кто редактировал это строчку и в каком коммите?
Антон
8
это тоже починил. Щас с другим борюсь, понять не могу: ldc2 -mtriple=arm-none-linux-gnueabi -gcc=/usr/arm-linux-eabi/bin/arm-none-linux-gnueabihf-gcc -L-L/home/u ser/ldc-build...
quantumde1 Зубенко
1
Карта сайта