Cheese
Dmitry
Хм, ну там всё есть, все каналы.
Dmitry
Я бы только ещё секцию про редакторы добавил
Dmitry
Чуть позже сделаю PR
Cheese
Cheese
может, и ресурсы на вики перенести...
Dmitry
wiki ?
Dmitry
Это где?
Cheese
странный ворнинг
λ> data T = A{x :: Int, someOtherFields :: Bool} | B
λ> let f a@A{x} = a{x = x + 1}; f B = B
<interactive>:12:16: warning: [-Wincomplete-record-updates]
Pattern match(es) are non-exhaustive
In a record-update construct: Patterns not matched: B
я всего лишь использовал A после проверки на A. как это делать правильно?
Aleksei (astynax)
wiki ?
https://github.com/ruHaskell/ruhaskell/wiki
Cheese
Cheese
но здесь точно всё ок
Cheese
вот так сработало, но это немного странно пахнет, по-моему
f a@A{x, ..} = A{x = x + 1, ..}; f B = B
A64m
не знаю, чего вы удивляетесь, информация о том, что проверилась "внешним" матчем во внутренний не передается же
> foo xs@(_:_) = case xs of {(h:_) -> Just h}; foo [] = Nothing
<interactive>:17:16: warning: [-Wincomplete-patterns]
Pattern match(es) are non-exhaustive
In a case alternative: Patterns not matched: []
Cheese
Leonid 🦇
@qnikst а в катипе же нельзя поменять уровень месседжей у скрайба?. Типа по сигналу ставить DebugS?
Cheese
Alexander
Alexander
свой напиши и меняй
A64m
тест покрытия у матчинга очень тупой и полезность его сомнительна - потому его ворнинги по умолчанию и не включены
Alexander
Cheese
A64m
Cheese
A64m
> I'm currently working on an unofficial guide to GHC's extensions, aimed towards beginners who are wondering what the hell is going on.
надеюсь он будет состоять из одной строки: ЧИТАЙ ГХЦ-МАНУАЛ!!1111
(совсем не надеюсь, на самом деле)
Dmitry
"Next 24 days of GHC Extensions" ?
Dmitry
"Honey moon of GHC Extensions" ?
Aleksei (astynax)
GHC Manual слишком большой, искать по нему сложно, если не знаешь названия расширения или хотя бы раздела, в котором искомое может быть. А помнить всё ещё сложнее
Влод
ну видимо подразумевается что нужно читать и перечитывать как когда-то страуструпа всем рекомендовали для плюсов
Влод
тип в какой-то момент эта мешанина текста заструктурируется
Aleksei (astynax)
Сомневаюсь
A64m
описание экстеншенов 200 страниц (причем все читать не надо), но хаскелисты лучше прочитают больше страниц всякого говна, которое напишет кто угодно, только не тот, кто что-то знает про экстеншены
Dmitry
Надо экспертную систему делать. Вопросно-ответную. Задаёт ряд наводящих вопросов, выдаёт нужные расширения.
- хотите ли вы не писать T.pack "some string", а сразу фигачить "some string"
- нууу, наверное, да.
- попробуйте OverloadedStrings
Евгений
GHC Manual разросся и стал очень неудобным
Dmitry
https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html
Dmitry
Всего-то ~100 расширений
Евгений
Нужен какой-нибудь метамануал по экстеншонам
Dmitry
Даже можно без экспертной системы обойтись
Евгений
A64m
конечно посоветовали сразу шизовый материал Диля, где, к примеру, есть адовая таблица где экстеншены классифицированы на "дженерал" и "специалайзед"
Dmitry
Дайте ссылку
A64m
за публикацию этой ссылки я бы банил, например
Dmitry
Ну ладно :)
A64m
где, к примеру, лямбда-кейс классифицирован как "общий" а мульти вей иф как "специализированный"
или гадт дженерал, а семейства специалайзед
Евгений
Dmitry
А что значит, общий/специализированный?
A64m
да ничего не значит, как видно из примеров. Диль поехавший просто
Евгений
Мне кажется расширения сложно делить как-то. Ну то есть яркие примеры расширений системы типов и синтаксического сахара. Но это не покрывает всё, а во вторых грань тонка
A64m
или списк "опасных" экстеншенов
где в одной куче реально опасные вроде
OverlappingInstances
IncoherentInstances
недоделанные, которые могут убрать в любой момент
ImpredicativeTypes
задепрекейченые но безвредные
DatatypeContexts
и просто безопасные
AllowAmbigiousTypes
Leonid 🦇
ой, я и не знал что в ghc есть BinaryLiterals
A64m
еще есть экстеншоны которые он называет "историческими" вроде DatatypeContexts. Но там почему-то DoRec и TraditionalRecordSyntax
Dmitry
Dmitry
0x0.1p12 is the same as 256
A64m
как вам такой перл, к примеру?
> TraditionalRecordSyntax - Traditional record syntax was an extension to the Haskell 98 specification for what we now consider standard record syntax.
Dmitry
Оно ж как бы встроено по умолчанию?
Dmitry
И надо -XNoTraditionalRecordSyntax
A64m
ну понятно, потому что это новый экстеншон, который сделали, когда новые рекорды для хаскеля обсуждались лет 5 назад - чтоб можно было стандартные рекорды выключать - все что диль написал про него - полная ахинея
A64m
каких только литералов не понаделали уже, а сстроковых литералов, в которых эскейпить ничего не надо до сих пор нет
Dmitry
А как не эскейпить-то?
Alexander
Alexander
и никакой мануал от этого не спасет
A64m
А как не эскейпить-то?
ну как в F# каком-нибудь есть
If preceded by the @ symbol, the literal is a verbatim string. This means that any escape sequences are ignored, except that two quotation mark characters are interpreted as one quotation mark character.
Additionally, a string may be enclosed by triple quotes. In this case, all escape sequences are ignored, including double quotation mark characters.
Dmitry
Годно
Cheese
Alexander
о у нас такие экспертные системы в блогах и твиттерах живут
Alexander
это кто?
Leonid 🦇
этот, который hugs хотел
A64m
не тот
A64m
Клайден, который AntC
Leonid 🦇
так он же вроде больше не релевантен для "комьюнити"
A64m
не понял
Leonid 🦇
AntC библиотек не пишет, в ghc не контрибутит. не?
A64m
он активный участник обсуждений же
Leonid 🦇
как Картер?
A64m
да, вроде того
Евгений
Норм, вспоминается сразу спор об уставе на втором съезде РСДРП
Anonymous
@argenetix будет жить. Поприветствуем!