@haskellru

Страница 109 из 1551
Anatolii
27.08.2016
14:30:41
то что выше это мне GHC вывел

GHCMod

а вон я ниже написал

и оно компилируется

Google
Anatolii
27.08.2016
14:31:18
я SO увидел в коде:)

сам не поверил

Denis
27.08.2016
14:33:18
Сейчас бы еще объяснение, почему так выходит.

Какая-то маскировка типов?

Anatolii
27.08.2016
14:33:40
это может @qnikst нам поможет:)

Alexander
27.08.2016
14:34:18
А что?

Anatolii
27.08.2016
14:34:33
вот код

--pDSN :: Text.Parsec.Prim.ParsecT String () Data.Functor.Identity.Identity ([Char], [Char]) pDSN :: Parser (String, String) pDSN = do string "dsn" equalsSign string "dbi:" dbType <- many (noneOf ":") char ':' --dbInfo <- pDBInfo return (dbType, "")

закоментированная строка первая

тип который GhcMod вывел

после него я написал тип руками

и то и то компилится

мы с @DenisLebedev не понимаем как так это просходит:)

Google
Alexander
27.08.2016
14:35:41
А что не так? Он парсект или какой там type раскрыл

Anatolii
27.08.2016
14:36:10
Parser - это алиас на вот то что сверху?

Denis
27.08.2016
14:36:42
А что не так? Он парсект или какой там type раскрыл
Фокус в том, что у меня с первым описанием типов не компилилось в ghci

Anatolii
27.08.2016
14:36:55
и да, это тоже

Alexander
27.08.2016
14:38:35
А ошибка какая? Может что не импортировпно?

Anatolii
27.08.2016
14:39:17
сейчас попробую

опять

Denis
27.08.2016
14:39:42
Не импортированы модули Parsec были, использовались комбинаторы. Но ведь без явного указания типов все работало! И тип ghci выводил, а использовать его не давал.

Text.ParserCombinators.Parsec.Prim

Что-то такое было импортировано, с телефона сложно посмотреть.

Alexander
27.08.2016
14:41:40
Есть такая проблема

Вывести может, а явно написать нельзя

Anatolii
27.08.2016
14:41:59
он мне пишет что не моджет найти пакет

Alexander
27.08.2016
14:42:02
Хотя хз проблемы ли

Anatolii
27.08.2016
14:42:07
и за импортить я его не могу

ну да

это они просто скрыли реализацию

пробелема была пока не было понятно что можно кратко написать

а компилятор c -Wall

Ругался постоянно

Google
Denis
27.08.2016
14:43:29
Вывести может, а явно написать нельзя
Выводил бы уж тогда тоже через доступные типы...

Кстати, раз ты тут. Чем комбинаторы отличаются от обычного парсека и что лучше использовать для разбора всяких конфигов?

Anatolii
27.08.2016
14:45:22
дак парсек же на комбинаторах сделан вроде

и помойму парсек идеален для парсинга конфиг файлов

я прям балдею

Alexander
27.08.2016
14:48:35
Выводил бы уж тогда тоже через доступные типы...
Ну он фулли qualified пишет в тпвуеом случае

Denis
27.08.2016
14:49:00
Да, он хорош. Но я имел в виду модули Parsec и ParserCombinators из одного и того же пакета Parsec. Один и тот же алгоритм можно реализовать с помощью обоих модулей.

Anatolii
27.08.2016
14:49:34
сам Parsec вроде просто 3 других модуля импортит

Prim

Char

Combinators

там может и есть какие функции

Alexander
27.08.2016
14:49:51
Они одно alias другого

Гхц ничего не угадывает

Что написали то и выводит

Или ругается на конфликт имен

Anatolii
28.08.2016
07:35:51
а для AttoParsec есть документация? или надо в сорцах смотреть?

Denis
28.08.2016
13:38:10
а для AttoParsec есть документация? или надо в сорцах смотреть?
На хакадже вполне вменяемая документация. Однако, пакет помечен как deprecated и последний коммит в исходниках был 6 месяцев назад.

Google
Denis
28.08.2016
14:13:26
где он помечен как deprecated?
На хакадже, а значит и в исходниках

Vladimir
28.08.2016
14:13:46
На хакадже, а значит и в исходниках
https://hackage.haskell.org/package/attoparsec

нигде не вижу слова "deprecated"

Denis
28.08.2016
14:14:28
Вот, что я вижу с телефона

https://hackage.haskell.org/package/attoparsec-0.13.0.2/docs/Data-Attoparsec.html

Vladimir
28.08.2016
14:16:25
Latest commit by hvr 6 months ago
это наверно PR смерджили поздно

https://github.com/bos/attoparsec/commits/master

> Commits on Jun 30, 2016

Admin
ERROR: S client not available

Denis
28.08.2016
14:17:35
Глюки гитхаба какие-то, наверное

Vladimir
28.08.2016
14:18:00
да это не глюки

или ты не знал, что в коммите есть запись о дате, но это ровным счетом ничего не значит?

Denis
28.08.2016
14:20:39
или ты не знал, что в коммите есть запись о дате, но это ровным счетом ничего не значит?
Заходя на главную страницу проекта на гитхабе я получаю недостоверную информацию. Если это не глюк, то я не знаю, как это еще назвать.

Anatolii
28.08.2016
14:45:42
Блин, я всегда из Hoogle попадал на страницу доков

Только сейчас понял что пакеты на хэкэдже нажимаемы

Я на гитхабе сидел читал

Там некоторые пакеты и вправду Deprecated

Но есть указания чем пользовался вместо них

Так что все ок с либой

Google
Anatolii
28.08.2016
14:47:38
Там даже для ghc 8 задел есть

и тесты

я думаю что Брайн не оставит такую важную либу без поддержки

Alexander
28.08.2016
14:50:12
Anatolii
28.08.2016
14:51:01
под Data.AttoParsec есть куча сабмодулей

This module is deprecated. Use Data.Attoparsec.ByteString instead.

даже вон сказали куда идти

Vladimir
28.08.2016
14:54:44
ахаха

это про модуль было

Ekin
28.08.2016
14:57:42
Есть же, например, polyparse, зачем вам parsec? Parsec проник во всн учебники, но это не значит, что он лучший, или что он стандарт.

Alexander
28.08.2016
15:13:19
Attoparsec /= parsec

Anatolii
28.08.2016
15:28:13
Parsec я нашел в учебниках, ты прав

а вот AttoParsec - это про другое

совсем

а за PolyParsec спасибо

посмотрю

@proDOT
28.08.2016
15:36:19
Indent. I use.. Tab – 157 ??????? 42% 4 spaces – 100 ???? 27% 2 spaces – 96 ???? 26% 1 space – 6 ▫️ 2% 3 spaces – 4 ▫️ 1% 5 or 6 or 7 spaces – 3 ▫️ 1% 8+ spaces – 3 ▫️ 1% 8 spaces – 2 ▫️ 1% ? 371 people voted so far.

Index
28.08.2016
17:49:57
А какие аргументы против?

Semyon
28.08.2016
17:51:47
во-первых, довольно часто уезжает индентация

например в objc

с которым я имел несчастье очень долго работать

Страница 109 из 1551