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

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

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

46 ответов

102 просмотра

компилируйте с -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- Автор вопроса

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

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

читать файл максимально быстро? странный вопрос))
zamtmn
53
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
А кто такой мужчина в твоем понимании Азиз?
who?です 🐈
11
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Ну значит тебе повезло, мы же про транк говорим оба?
Александр (Rouse_) Багель
11
Всем ку. Подскажите, если задекларировал массив так: int arr[10] = {1, 2, 3, 4}, то в arr[4] будет мусор или нуль?
Sasha K
14
Карта сайта