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

Получается, что он находит одинаковое колво тегов, с разными именами,

или я что тто не понял в таксоупе ?

46 ответов

150 просмотров

компилируйте с -Wall -Werror

Fedor- Автор вопроса
Cheese Syrowiecki
компилируйте с -Wall -Werror

как это сделать с кабал репл сейчас команда такая nix develop -c cabal repl он не берет -Wall -Werror

Fedor- Автор вопроса
Fedor- Автор вопроса
Cheese Syrowiecki
можно ещё cabal repl --ghc-options="-Wall -Werror"

с этим понял, ошибку прочитал, првда не понял, как правильно, у вас аналогичный код был title what tree =[ tag | tag@(TagBranch what _ _) <- universeTree tree ] точнее это то что я сделал из вашего кода..... у вас был title = [tag |tag@(TagBranch "title" attr _) <- universeTree html ] собственно я пытался сделать функцию, которая получит дерево где искать и какой тег в виде строки

Fedor
с этим понял, ошибку прочитал, првда не понял, ка...

"title" — константа — проверяется совпадение со значением name — переменная — создаётся и связывается со значением

Fedor
с этим понял, ошибку прочитал, првда не понял, ка...

попробуйте title name tree = [ tag | tag@(TagBranch tagName _ _) <- universeTree tree ]

Fedor- Автор вопроса
Cheese Syrowiecki
"title" — константа — проверяется совпадение со зн...

вопрос в том, чтоб не писать "title" как константу, а передать ее при вызове, именно это и не получается

Fedor- Автор вопроса
Cheese Syrowiecki
попробуйте title name tree = [ tag | tag@(Ta...

неа app/Main.hs:15:1: error: [-Wmissing-signatures, -Werror=missing-signatures] Top-level binding with no type signature: title :: p -> [TagTree str] -> [TagTree str] | 15 | title name tree = | ^^^^^ app/Main.hs:15:1: error: [-Wunused-top-binds, -Werror=unused-top-binds] Defined but not used: ‘title’ | 15 | title name tree = | ^^^^^ app/Main.hs:15:7: error: [-Wunused-matches, -Werror=unused-matches] Defined but not used: ‘name’ | 15 | title name tree = | ^^^^ app/Main.hs:17:20: error: [-Wunused-matches, -Werror=unused-matches] Defined but not used: ‘tagName’ | 17 | | tag@(TagBranch tagName _ _) <- universeTree tree | ^^^^^^^ [2 of 3] Compiling Primepairs ( app/Primepairs.hs, interpreted ) Failed, one module loaded.

Fedor
неа app/Main.hs:15:1: error: [-Wmissing-signatur...

осталось эти ошибки исправить

Fedor
неа app/Main.hs:15:1: error: [-Wmissing-signatur...

unused-matches — это логическая ошибка, на которую вам указывает компилятор

Fedor- Автор вопроса
Cheese Syrowiecki
unused-matches — это логическая ошибка, на которую...

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

Fedor- Автор вопроса
Fedor- Автор вопроса
Cheese Syrowiecki
а каким смыслом вы их хотите связать?

с этим разобрался, передал значение, но типы не совпадают

Fedor- Автор вопроса
Cheese Syrowiecki
покажите код и ошибку

Ok, two modules loaded. ghci> response <- get "https://www.google.com/search?q=haskell" ghci> html = parseTree $ response ^. responseBody ghci> ab = title "a" html <interactive>:3:16: error: • Couldn't match type ‘B.ByteString’ with ‘[Char]’ Expected: [TagTree String] Actual: [TagTree B.ByteString] • In the second argument of ‘title’, namely ‘html’ In the expression: title "a" html In an equation for ‘ab’: ab = title "a" html

Fedor
Ok, two modules loaded. ghci> response <- get "htt...

моё сообщение про OverloadedStrings вы не прочитали? https://t.me/haskell_learn/117801

Fedor- Автор вопроса
Fedor- Автор вопроса
Cheese Syrowiecki
моё сообщение про OverloadedStrings вы не прочитал...

или надо отдельно в интерпретаторе set

Fedor- Автор вопроса
Cheese Syrowiecki
а title как определена?

title name tree = [ tag | tag@(TagBranch tagName _ _) <- universeTree tree , tagName == name ]

Fedor
или надо отдельно в интерпретаторе set

а, действительно, вы используете строковый литерал в репле, тогда надо :set -XOverloadedStrings

Fedor
title name tree = [ tag | tag@(TagBranch tagN...

должен быть ворнинг об отстутствии сигнатруры

Fedor- Автор вопроса
Cheese Syrowiecki
должен быть ворнинг об отстутствии сигнатруры

есть такой app/Main.hs:15:1: warning: [-Wmissing-signatures] Top-level binding with no type signature: title :: Eq a => a -> [TagTree a] -> [TagTree a] | 15 | title name tree =

Fedor
есть такой app/Main.hs:15:1: warning: [-Wmissing-...

да, лучше исправить по подсказке

Fedor- Автор вопроса
Cheese Syrowiecki
да, лучше исправить по подсказке

но произвольный тип смысла указывать нет или есть ? по идее здесь надо какой то строковый...

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

tagsoup может работать с разными строковыми типами, но конкретно Wreq.get выдаёт Lazy.ByteString

Fedor- Автор вопроса
Cheese Syrowiecki
да, лучше исправить по подсказке

туплю что то с описанием типа app/Main.hs:14:10: error: • Expected kind ‘* -> Constraint’, but ‘B.ByteString’ has kind ‘*’ • In the type signature: title :: B.ByteString a => a -> [TagTree a] -> [TagTree a] | 14 | title :: B.ByteString a => a -> [TagTree a] -> [TagTree a]

Fedor
туплю что то с описанием типа app/Main.hs:14:10:...

слева от толстой стрелки (=>) пишутся отграничения с тайпклассами, а ByteString — это не класс, а просто тип

Fedor- Автор вопроса
Cheese Syrowiecki
слева от толстой стрелки (=>) пишутся отграничения...

спасибо, так работает title :: B.ByteString -> [TagTree B.ByteString] -> [TagTree B.ByteString] Правда есть вопрос, ты использовал в свом коде кроме наме, как константы attrs негде ее не объявляя, это что зачем ?

Fedor
спасибо, так работает title :: B.ByteString -> [T...

не понял, покажи, что имеешь в виду

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

title name tree = [ tag | tag@(TagBranch tagName attrs _) <- universeTree tree , tagName == name ]

Fedor
title name tree = [ tag | tag@(TagBranch tagN...

наоборот, здесь attrs объявляется, но не используется

Fedor- Автор вопроса
Cheese Syrowiecki
наоборот, здесь attrs объявляется, но не используе...

да но хотелось и по нему выставить условие, не только тег а, а еще только один атрибут

Fedor- Автор вопроса
Fedor
да но хотелось и по нему выставить условие, не тол...

а то может сразу можно проверить его содержание, типа начинается с http

Fedor
title name tree = [ tag | tag@(TagBranch tagN...

элементы списка universeTree tree сопоставляются с образцом tag@(TagBranch tagName attrs _)

Fedor- Автор вопроса
Cheese Syrowiecki
наоборот, здесь attrs объявляется, но не используе...

Здесь же используется конструктор TagBranch у которого три параметра, с первым сопоставили, второй attrs по идее список строк, хотя написано список атрибутов строк, которые атрибут = (стр,стр) - вот и не понимаю как проверять

Fedor
да но хотелось и по нему выставить условие, не тол...

подозреваю, вам пригодится функция lookup из прелюдии

Fedor
Здесь же используется конструктор TagBranch у кото...

условие name == tagName у вас написано. вот так и надо

Fedor- Автор вопроса

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта