Denis
уверен что когда-то это читал
Алексей
Рекурсивность ADT делается при помощи Mu, и функтор из которого делается тип складывается из нескольких независимо определенённых типов. И интерпретатор для тайпклассов, да
Cheese
Denis
Denis
олеговщина всякая попадается http://okmij.org/ftp/Haskell/extensible/extensible-a-la-carte.html
IC
> The goal is to define a data type by cases, where one can add new cases to the data type and new functions over the data type, without recompiling existing code, and while retaining static type safety.
Алексей
Мне для раширяемого ADT, но я пока не уверен, что это мне вообще надо
Denis
Denis
походу оно и есть
IC
да
IC
> As the second example illustrates, we can also write and evaluate expressions of type Expr (Val :+: Mul), thereby leaving out addition.
In fact, once we have a menu of expression building blocks, we can assemble our own data types à la carte.
IC
ничотак, миленько...
Cheese
кажется, пробегал где-то общий тайпкласс — абстракция над Аттопарсеком и Мегапарсеком. кто-нибудь помнит название?
A64m
для аттопарсека и парсека вроде parsers был
Cheese
ага, есть там такой класс
Cheese
Зигохистоморфный
a la carte, recursion schemes, compdata, compstrat и тд
Зигохистоморфный
кана
госпади
кана
сколько же раз ты это писал уже
Зигохистоморфный
или еще какую дичь, что ты 100500 раз повторяешь
Алексей
Я к таким вещам отношусь по рабоче-крестьянски. Неразличимы? Одно и то же
кана
лол, окей, мне интересно даже, как два раза (в разных чатах) сравнится с ежедневной мантрой про fix~nu~mu в телеге, твиттере, ютубе, везде подряд
при этом без контекста из определений, то есть тупо фраза ради фразы
Алексей
А можно подробнее?
Алексей
Давай
Зигохистоморфный
Давай
ну вот смотри, у них общий базовый функтор TreeF, и я могу переходить от одного к другому просто через refix
https://github.com/xgrommx/purescript-experiments/blob/master/src/Main.purs#L59-L63
Алексей
А где опредления Mu, Nu, refix?
Зигохистоморфный
Алексей
нашел
Зигохистоморфный
тут есть свой базовый функтор TreeF
Anatolii
В описании у чувака в профиле на гитхабе:
Able to write 1k+ lines of Golang code per day.
Dmitry
Реализуя полиморфизм перегрузкой?
кана
мультикурсор, написал пару функцию для разных типов и вот они - 1к строк
IC
Denis
всего одним макросом в виме
Vladimir
"наговнякать, не приходя в сознание"
Слава
А кто тут в чате был из Сбертеха?
Слава
Сбербанк, это фиаско
Машинлёрнинг, говорите? Тут внезапно выяснилось каким образом Сбербанк выявляет "финансирование террористов", и блокирует счета юриков. Тупо список ключевых слов. И в основном, далекие от терроризма. Например, слово «Агент». Блокируется все переводы со словами в назначении платежа «за химический реАГЕНТ», «по АГЕНТскому договору» и т.д. Пострадавшие (а их уже много) свидетельствуют: в банке отвечают, мол, ничего сделать не можем, блокируется автоматически, собирайте документы, и не забудьте взять справку, что вы не террорист.
Боюсь проверять, но по слову «Госдеп» или «Суперагент», наверное, не просто блокируют, но и сигнал на пульт ФСБ поступает. @infernal_money
Кстати, на ютюб-канале «Адские бабки» уже вышел видос, как избежать блокировки счета, и образец жалобы в прокуратуру, велкам.
кана
вот это реклама
Слава
вот это реклама
У них все посты такие. Но подход с ключевиками хорош, не правда ли?
Artem
Подскажите, пожалуйста, при запуске программы
$ ./Main +RTS -Dg
Где почитать про флаг -Dg? Не смог найти в документации GHC. Особенно интересует, что есть MUT, про который он пишет.
Kirill
http://downloads.haskell.org/~ghc/latest/docs/html/users_guide/runtime_control.html#rts-flag--D%20%E2%9F%A8x%E2%9F%A9
Kirill
есть же всё?
Kirill
Use +RTS -? to find out which debug flags are supported.
Artem
Я думал, есть где-то документация…
Artem
Нет GHC сейчас рядом (и вообще компьютера)
Kirill
у меня по данным флагам ничего внятного не видать :(
Kirill
собрал с -debug, выдаёт
Kirill
-Ds DEBUG: scheduler
-Di DEBUG: interpreter
-Dw DEBUG: weak
-DG DEBUG: gccafs
-Dg DEBUG: gc
-Db DEBUG: block
-DS DEBUG: sanity
-Dt DEBUG: stable
-Dp DEBUG: prof
-Da DEBUG: apply
-Dl DEBUG: linker
-Dm DEBUG: stm
-Dz DEBUG: stack squeezing
-Dc DEBUG: program coverage
-Dr DEBUG: sparks
-DC DEBUG: compact
Kirill
сойдёт @ulysses4ever ?
Artem
сойдёт @ulysses4ever ?
Это лучше, чем ничего, спасибо! Надо, видимо, почитать про GC Commentary, чтобы понять что есть MUT…
Kirill
не, ну это-то просто, с той же страницы хелпа - "The amount of CPU time and elapsed wall clock time while initialising the runtime system (INIT), running the program itself (MUT, the mutator), and garbage collecting (GC)"
Kirill
т.е. по сути это полезная нагрузка
Artem
Ilya
Alexander
Alexander
или либа?
Алексей
Надо почитать
Alexander
Artem
Alexander
Artem
Denis
@qnikst ^
Alexander
пасибо
zool
Как правильно паковать ресурсы (.rc) под винду?
сейчас делаю так:
1 кастомный билд кабал с хуком, где компилирую ресурсы windres-ом
2 в .cabal (или package.yaml) направляю скомпилированный файл ресурсов .o в ghc через ghc-options, что мне кажется не вполне верным идейно. Но это работает
Как это делать правильно?
Denis
Хм... Неожиданно: https://twitter.com/reiddraper/status/981285329314500613
zool
в вакансии ни слова про хаскелл, может чисто для привлечения внимания?)
Viacheslav
думаю потому что там это не главный критерий
Viacheslav
больше упирают на PL Theory
Alexander
я же говорю рубисты мечтают о хаскеле
Pavel
что ж поделать, хаскель и руби -- два языка с чистой метафорой: фп и ооп ;)
zool
Так про компиляцию ресурсов никто не знает? На просторах интернета так и не смог найти ответа
Aleksei (astynax)
Мало кто пишет на Haskell под Windows да ещё и десктопные приложения
Aleksei (astynax)
Поэтому и не отвечают, думаю