Alexander
и смотреть на то, что выдаст cabal install в логе ошибок поиска
Alexander
к ним сложно привыкнуть, но там вся инфа есть
A64m
И мемоизация идёт лесом
кое-кому нравится ФП, между прочим, правда таких все меньше
Alexander
для любителей неленивости ксть ocaml
Alexander
ну так NFData-то тоже костыль
A64m
для любителей неленивости ксть ocaml
для них есть C++, окамл это полумера
Антон
но статья про жиес
Я даже, кажется, помню эту статью. Помнится, ещё подумал, что как-то костыльно это выглядит
Антон
для них есть C++, окамл это полумера
В C++ не параметризованных модулей
Антон
И непараметризованных, кстати, тоже
A64m
темплейты есть зато
кана
http://okmij.org/ftp/Haskell/extensible/more.pdf
Антон
темплейты есть зато
Мономорфизация с проверкой констрейнтов после подстановки типовых параметров? Ну такое
A64m
Мономорфизация с проверкой констрейнтов после подстановки типовых параметров? Ну такое
да, это костыли от бедности, ну так и строгость по умолчанию тоже
Антон
да, это костыли от бедности, ну так и строгость по умолчанию тоже
Ничто не мешает проверять констрейнты перед мономорфизацией. Но, к сожалению, концепты для шаблонов не являются обязательными
A64m
мешает исторический багаж и убогость имплементаторов, ну так и со строгостью по умолчанию то же самое
Евгений
да, это костыли от бедности, ну так и строгость по умолчанию тоже
Но лень это тоже костыли от бедности. Просто она ближе к идеалу чем строгая редукция и всё
A64m
ну да, но сейчас это мало что значащее на практике утверждение, как утверждение, что строгие языки костыльные до 81-го года
Евгений
ну да, но сейчас это мало что значащее на практике утверждение, как утверждение, что строгие языки костыльные до 81-го года
В принципе я согласен. Просто привык по умолчанию из теории исходить. Конечно на практике ничего лучше лени сейчас нет
Andrey
да что новеллы - прямо статьи в журналы и посты в мессенжеры )
A64m
о, а какие есть теоретические альтернативы?
Lamping style optimal reduction вот это вот все
Ю ли я? 🤔
Я что-то мельком слышал про lenient evaluation, с чем его едят?
A64m
это такой костыль из 90-х, который не взлетел (как и все костыли из 90-х)
A64m
это, грубо говоря, как если бы все санки были спарками
Oleg
По описанию похоже на Future
kosc
@qnikst https://github.com/qnikst/irc-simple Более хорошее использование либ или другие либы: stm-conduit, streaming, megaparsec, len Len или Lens? Хотя я вообще не уверен, что Lens это либа, но вдруг.
Alexander
lens
Alexander
я там в паре мест использовал но не по делу
kosc
Кстати, можно было ещё писать код в lhs-файлах.
kosc
Мб для такого типа проекта было бы проще.
kosc
А вообще спасибо тебе большое, я буду теперь читать этот проект как учебник по Haskell.
Alexander
может, но я добавил каменты после кода
Kirill
Привет! Ищу пакет, чтобы распарсить XML фиксированной схемы. Хочу, как с aeson: я определяю ADT, deriv'аю FromXML — и у меня есть парсер. Или даже я даю тулзе xsd, чтобы по ней сгенерировался Haskell-код для ADT и для парсера. Вчера пробовал осилить HaXml, несмотря на отсутствие доков и битые ссылки. В HaXml есть тулза XsdToHaskell, с помощью которой можно сгенерить haskell-код по xsd-файлу. Но эта штука как будто демо-версию создала, лишь несколько элементов из сотни. Про HXT я так понял, что из схемы сгенерить возможности нет, но из ADT вроде можно парсер заderiv'ить. Может, я не те пакеты смотрю? Расскажите, пожалуйста, у кого опыт есть с этим. Мне не нужно ни скорости парсинга, ни экономии памяти, ни генерации XML.
Denis
Привет. https://hackage.haskell.org/package/xml-isogen-0.2.1/docs/Data-THGen-XML.html можешь взять.
Denis
Там на dsl описываешь структуру повторяющую сабсет xml, типы и парсеры он генерит.
Kirill
Спасибо! Пока что выглядит проще, чем HXT. Хотя и непривычно, что не видно типов :)
Denis
там линзы еще к ним генерятся, к слову
Alexander
Well-Typed хайрят: http://www.well-typed.com/blog/2018/03/haskell-development-job-with-well-typed/
kosc
>tl;dr If you’d like a job with us, send your application as soon as possible. Топище.
Leonid 🦇
Сейчас наверно все хаскель консалтинги пишут около-криптовалютное. Половина для iohk
kosc
https://github.com/qnikst/irc-simple/blob/master/src/Server.hs#L10 Ну как так-то? Но что же это значит? Много где встречал, кстати.
Leonid 🦇
FlexibleContexts мог бы быть в haskell2020, но вроде ломает какие-то мутные экстеншены которые пора выкинуть
kosc
Всмысле мог бы быть enabled by default?
Leonid 🦇
ну
Cheese
https://github.com/qnikst/irc-simple/blob/master/src/Server.hs#L10 Ну как так-то? Но что же это значит? Много где встречал, кстати.
это разрешает писать ограничения на типы, очевидно корректные с точки зрения программиста, но не очень корректные с точки зрения "стандарта" языка
kosc
Ясно, спасибо.
Denis
import Data.Function data Foo = Foo { runFoo :: Int -> Int } add2 = Foo (+2) five = (add2 & runFoo) 3 Есть вариант избавиться от скобок в реализации five ?
Влод
runFoo $ add2 $ 3?
кана
five = add2 & runFoo $ 3
Aleksei (astynax)
add2 & runFoo ($ 3)
Aleksei (astynax)
five = add2 & runFoo $ 3
так нельзя
кана
так нельзя
почему?
Aleksei (astynax)
фиксити клэшится
кана
ну у меня работает нормально без варнов
Aleksei (astynax)
хмм
кана
кана
у $ приоритет 0
кана
у & 1
Denis
five = add2 & runFoo $ 3
Спасибо ) хотя мне казалось что я это пробовал
Aleksei (astynax)
у $ приоритет 0
Да, ты прав
Aleksei (astynax)
У меня (&) где-то клешилось. Но м.б. не с ($)
Kirill
дак вот с этим пояснением взамен "игнорируйте" у Саши
Cheese
не знаю, меня удовлетворяет текущая версия
A64m
пояснение странноватое, прямо скажем. Что значит "не очень корректные"
Cheese
значит "не корректные"
Евгений
значит "не корректные"
Ты не путаешь с XUndecidableInstances ?
Cheese
"не разрешённые языком"
A64m
это как сказать, что проверка паттернматчинга в 8.0 некорректная по сравнению со "стандартом"
Alexander
мне было лень искать какую именно форму констреинтов в контексте оно разрешает