Alexander
да
Alexander
там близко к этому
Anatolii
но там же на Ocaml
Anatolii
http://okmij.org/ftp/meta-programming/quel.pdf
Anatolii
правда Рома что-то там на хаскеле сделал
Anatolii
статейка была
Anatolii
я пробовал читать, пока рановато
Alexander
ага, он через default signatures запилил вариант, который дефолтные методы хитрые делает чтобы наследование получить
Alexander
ну не хитрые, в общем-то единственное решение напрашивающееся, но Олег его не заметил
Anatolii
https://ro-che.info/articles/2016-02-03-finally-tagless-boilerplate
Anatolii
вот статейка если кому интересно
Serghei
https://stackoverflow.com/insights/survey/2017/
Serghei
> Top Paying Technologies by Region
Serghei
ничоси
Misha
ничоси
занятно, что хаскела всего вдвое меньше, чем скалы
Misha
а скалы дофига
Misha
"дофига" это уже по личному опыту
Serghei
Вообще приятно конечно, что Хаскел признан не только девелоперами но и бизнесом
Serghei
Даже удивительно
Misha
ну как сказать, "приятно" конечно, но как набежит куча говнокодеров и начнет в гитхабы строчить
Misha
и не избежать успеха
Влод
> Top Paying Technologies by Region
только сейчас посмотрел ссылку. ну там всё нормально на самом деле. во всякое фп джунов не берут где-то года 3 назад для себя уяснил, что хоть и появляются вакансии на хаскель там или мл, но мне там ничего не светит. человек на той вакансии уже должен всё подряд уметь (или грамотно лечить что умеет), а язык это фон. на самом деле такое явление не фп-спецтфичное, но не знаю как его обобщить
Dmitry
Кто-нибудь использовал это https://hackage.haskell.org/package/boomerang
Dmitry
и может есть что-то такое-же, но лучше? Что нужно: парсер и претти-принтер два в одном. для dsl-ей
Mansur
и может есть что-то такое-же, но лучше? Что нужно: парсер и претти-принтер два в одном. для dsl-ей
Видел статью, там на бистрелках такое делали. Пакет invertible что ли.
Dmitry
да, это вижу. бумеранг сделан по мотивам, ссылается на это
Dmitry
что-то оно всё какое-то стрёмное.
Влод
https://hackage.haskell.org/package/boomerang-1.4.5.2/docs/Text-Boomerang.html не понимаю почему там постоянно используется слово претти
Влод
ну то есть идея примерно понятна: для твоего языка есть детерменированный парсер и даже в таком раскладе нет одназначного вывода для твоего аст в этот язык, и просто берём первый попавшийся вывод и называем его претти чтобы не было вопросов почему именно этот
Dmitry
Я чёт тоже не понял, он же просто парсит текст по указанной грамматике и сворачивает его обратно
Влод
но наверное там ещё должны быть какие то костыли чтобы выдавать более ожидаемый вывод (ну знать где ставить пробелы, переносы строк)
Dmitry
Ну поидее это всё часть грамматики, так что должно задаваться при её описании. Хотя хз как в этой либе сделано
Влод
кстати в примере всё сделано однозначно rBaz . many("baz-") . int . "-" . alpha вот в такой ситуации как бы он себя повёл?
Влод
возможно здесь есть какая-нибудь хитрость, мол либа заставляет всю эту информацию сохранять в конструкторе типа, но скорей всего нет
Dmitry
кстати в примере всё сделано однозначно rBaz . many("baz-") . int . "-" . alpha вот в такой ситуации как бы он себя повёл?
Для меня это пока довольно сложный вопрос. Я только учусь)) Может кто-нибудь из чатика знает?
Влод
да я в никуда говорю, не принимай вопросы лично ну хотя когда никто не пишет – тоже нет мотивации писать
Dmitry
Ну мне тоже интересно узнать детали о том как это сделано, я скорее к этому написал :)
Влод
-- | Give all possible serializations. unparse :: tok -> Boomerang e tok () url -> url -> [tok] unparse tok p = (map (($ tok) . fst)) . ser p -- | Give the first serialization, for Boomerangs with a serializer that needs just one value. unparse1 :: tok -> Boomerang e tok () (a :- ()) -> a -> Maybe tok unparse1 tok p a = case unparse tok p (a :- ()) of [] -> Nothing (s:_) -> Just s
Влод
на этом остановлюсь, хотя звучит интересно гетерогенный стек зачем-то используется
Влод
возможность получить то самое бесконечное число сериализаций
Инфернальный
call me
Инфернальный
call me asacp
Евгений
У массивов Data.Array бывают undefined значения. А можно как-то проверить (не перехватывая исключения), что определено ли оно?
Misha
не перехватывая исключения, в смысле? никак наверное
Misha
бьюсь головой в стену:
Misha
update :: (Typeable v, Binary v) => Log k v -> Process () update _ = do m2 <- expectTimeout timeout :: Process (Maybe v) ...
Misha
говорит Could not deduce (Typeable v1) arising from a use of ‘expectTimeout’ from the context: (Typeable v, Binary v) bound by the type signature for: update :: (Typeable v, Binary v) => Log k v -> Process ()
Misha
чего ему надо?
Misha
при том, что :t expectTimeout expectTimeout :: (binary-0.8.3.0:Data.Binary.Class.Binary a, Data.Typeable.Internal.Typeable a) => Int -> Process (Maybe a)
Alexander
или руками на тег смотреть
Евгений
Кошмар. А если вместо Array что-нибудь?
Alexander
а стоп, я наврал
Евгений
Чтобы за o(1) доступ был, но при этом можно было понять заполнено ли поле или нет
Alexander
это проверка на Thunk или нет
Alexander
на undefined никак
Alexander
Array (Maybe a) ?
Alexander
и заполнить Nothing-ами сначала
Евгений
Да, неотвратная идея
Artem
поскольку в языке нет понятия thunk (это деталь реализации), то лучше такого не хотеть)
Alexander
если человек хочет странного, то получит ответ
Alexander
и пусть уж сам решает хочет ли это использовать
Alexander
вроде не первый год в haskell
Алдар
https://torchhound.github.io/posts/haskellOneSentence.html
Влод
Откуда? Мб у вас тоже интересный чатик
Roman
Отсюда, видимо https://t.me/scala_jobs
Serghei
Постоянно сюда скалисты набегают 🤔
Serghei
Хороший язык
Alexander
я бы пошутил про хочется приобщиться к прекрасному, но.. я уже это сделал
Serghei
👍
Anatolii
@qnikst ты последний девзен не слушал? - Хаскель ЯКОБЫ лучше go
Anatolii
о каком прекраном может идти речь
Alexander
я не осиливаю девзен
Alexander
и вообще работал, а сегодня болел целый день
Ilja
на scala работаешь и не паришься
Alexander
надо не только в слаке добавить себе напоминание что в 2 часа ночи я должен спать
Ilja
😄
Dmitry
надо, что бы Касперский сюда вакансии постил, а то я тут похоже единственный, кто хаскеллистов ищет, гг