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

А как ловят такое ghci> res <- getPos2 urlt 0

(alist !! 0)
200
ghci> res
SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:16:01.522354643 UTC,2)])
ghci> urlt2 = search2Url (Search "www.google.com" "/search?q=" "\1044\1091\1073\1083\1077\1088\1080\1085")
ghci> res2 <- getPos2 urlt2 0 (alist !! 1)
200
200
200
*** Exception: Prelude.head: empty list
CallStack (from HasCallStack):
error, called at libraries/base/GHC/List.hs:1644:3 in base:GHC.List
errorEmptyList, called at libraries/base/GHC/List.hs:87:11 in base:GHC.List
badHead, called at libraries/base/GHC/List.hs:83:28 in base:GHC.List
head, called at app/Main.hs:139:28 in main:Main

то есть если нашел, то все ок, а вот если сразу нет, то

14 ответов

50 просмотров

смотри последнюю строчку head, called at app/Main.hs:139:28 in main:Main

Fedor- Автор вопроса
Cheese Syrowiecki
смотри последнюю строчку head, called at app/Main....

вот она processHtml :: HtmlText -> ([Url], Url) processHtml resp = (links, head next) where tree = parseTree resp treeU = universeTree tree next = [ getHref x | x@(TagBranch tagName attrs _) <- treeU, (tagName == "a") && isSubsetOf nextAttr attrs] links = [ getHref x | x@(TagBranch tagName attrs _) <- treeU, (tagName == "a") && isSubsetOf linkAttr attrs] я могу больше проверок поставить, но как посмотреть состояние внутри геенратора списка

Fedor
вот она processHtml :: HtmlText -> ([Url], Url) pr...

никак. у тебя список пустой. надо подумать, почему список получился пустой, почему фильтр выкинул все элементы, и проверить

Fedor
вот она processHtml :: HtmlText -> ([Url], Url) pr...

можно печатать переменные с помощью Debug.Trace

Fedor- Автор вопроса
Cheese Syrowiecki
никак. у тебя список пустой. надо подумать, почему...

Это я понимаю, не понимаю, почему он пустой на третий цикл.....

Fedor
вот она processHtml :: HtmlText -> ([Url], Url) pr...

скобки вокруг (tagName == "a") не нужны

Fedor
Это я понимаю, не понимаю, почему он пустой на тре...

потому что фильтр не нашёл ни одного элемента по условию. потому что их там нет.

Fedor- Автор вопроса
Cheese Syrowiecki
скобки вокруг (tagName == "a") не нужны

Это уберу, врядли причина ошибки....

Fedor
Это я понимаю, не понимаю, почему он пустой на тре...

но это уже вопрос не о Хаскеле, а о твоей предметной области

Fedor- Автор вопроса
Cheese Syrowiecki
потому что фильтр не нашёл ни одного элемента по у...

проблемма в том что последовательный запуск дает разные результаты вот например res2 <- getPos2 urlt2 0 (alist !! 1) 200 200 200 200 200 200 *** Exception: HttpExceptionRequest Request { host = "q=%D0%94%D1%83%D0%B1%D0%BB%D0%B5%D1%80%D0%B8%D0%BD&sca_esv=70d17c20703d2a91&ei=-IY4ZorVJ5mExc8PudG6SA&start=10&sa=N" port = 443 secure = True requestHeaders = [("User-Agent","Mozilla/5.0 (X11; Linux x86_64; rv:124.0) Gecko/20100101 Firefox/124.0")] path = "" queryString = "" method = "GET" proxy = Nothing rawBody = False redirectCount = 10 responseTimeout = ResponseTimeoutDefault requestVersion = HTTP/1.1 proxySecureMode = ProxySecureWithConnect } (ConnectionFailure Network.Socket.getAddrInfo (called with preferred socket type/protocol: AddrInfo {addrFlags = [AI_ADDRCONFIG], addrFamily = AF_UNSPEC, addrSocketType = Stream, addrProtocol = 0, addrAddress = 0.0.0.0:0, addrCanonName = Nothing}, host name: Just "q=%D0%94%D1%83%D0%B1%D0%BB%D0%B5%D1%80%D0%B8%D0%BD&sca_esv=70d17c20703d2a91&ei=-IY4ZorVJ5mExc8PudG6SA&start=10&sa=N", service name: Just "443"): does not exist (Name or service not known)) то есть там он упал на 4ой итерации с пустым списком, а тут упал понятно, относительно, но на 7ой итерации, я спрашиваю про механику как ловят, а не в конкретике

Fedor
проблемма в том что последовательный запуск дает р...

что же меняется между запусками? если у тебя только сервер и твоя программа. программа не меняется, значит, что?

Fedor- Автор вопроса
Cheese Syrowiecki
что же меняется между запусками? если у тебя тольк...

да я понимаю, что поменялись данные на серваке, которые он выдает, просто сбрасывать в файлы и искать там различия... Это понятно, просто спрашивал про то как обычно с этим поступают..

Fedor
да я понимаю, что поменялись данные на серваке, ко...

можно не использовать head например и доступ по индексу, котороо может не существовать

Fedor
да я понимаю, что поменялись данные на серваке, ко...

ну вот выше основной список средств отладки перечислили

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

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

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
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
А какие чаты вообще в ходу? Auto aim? И что еше
do you think you're better off alone? А
13
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
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
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
lazarus-3.2.0/gtk, linux патч "имя проекта по умолчанию project1 -> prj" день добрый не нравится "именя проекта по умолчанию" (project1), к.раз приходится переименовывать (н...
livontiy
5
Коллеги, а в чём сейчас хорошо писать на перле, в смысле ide? Пробовал в идее с плагином, подсветка есть, даже какие-то предупреждения есть, но рефакторинга считай нет. Перене...
Дмитрий Петров
9
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта