Size: a a a

2021 February 15

EP

Emelian Piker (Евген... in Haskell
Про polysemy вопрос, там плагин что делает, просто добавляет неких rules чтобы вывести и сократить тот набор конструкцию который получается при использовании free monad, то есть заточен под себя так сказать ?
источник

EP

Emelian Piker (Евген... in Haskell
Ещё вопрос, там в rust завезли Generic Associated Types, что даёт путь таким техникам как монады и final tagless в этом языке. Возможность реализовать профункторы итд. Тема новая так что думаю может быть интересно. Вопрос в том где найти место для общения на эту тему ?
С хаскель это связано тем что именно из него можно брать то богатство наработок, я не знаю на сколько это могло бы быть интересным для тех кто в этом чате.
источник

EP

Emelian Piker (Евген... in Haskell
У меня есть положительный опыт с реализацией final tagless на этом языке. Брал haskell примеры от serokell для основы возможного портирования, большое им спасибо.
источник

ЗП

Зигохистоморфный Пре... in Haskell
Emelian Piker (Евгений)
У меня есть положительный опыт с реализацией final tagless на этом языке. Брал haskell примеры от serokell для основы возможного портирования, большое им спасибо.
где?
источник

EP

Emelian Piker (Евген... in Haskell
Вот такие макросы дорабатываю, чтобы было удобнее
#[final_tagless]
pub trait Lambda<A, B, J>: Fn(&Repr<A>) -> Repr<B>
where
   J: Fn(&A) -> B,
{
   fn lambda(&self) -> J;
}
источник

EP

Emelian Piker (Евген... in Haskell
Вот статья serokell https://serokell.io/blog/tagless-final
источник

EP

Emelian Piker (Евген... in Haskell
источник

EP

Emelian Piker (Евген... in Haskell
источник

EP

Emelian Piker (Евген... in Haskell
Emelian Piker (Евгений)
Вот мои монады и мой макрос
источник

EP

Emelian Piker (Евген... in Haskell
Пока у себя ковыряю это, если инересно могу выложить в репу
источник

EP

Emelian Piker (Евген... in Haskell
Emelian Piker (Евгений)
Вот такие макросы дорабатываю, чтобы было удобнее
#[final_tagless]
pub trait Lambda<A, B, J>: Fn(&Repr<A>) -> Repr<B>
where
   J: Fn(&A) -> B,
{
   fn lambda(&self) -> J;
}
В общем как можно догадаться, что я добиваюсь чтобы примеры из статьи заработали в rust
источник

AP

Aleksei (astynax) Pi... in Haskell
Boris K
Немного необычный вопрос:
А можно ли сделать из дистрибутива ghc свой, портабельный вариант, с добавлением туда ряда внешних библиотек, вроде Qt и/или какой-то либы для какой-то СУБД, неважно. Главное, чтобы был чёткий алгоритм, как это сделать?
То есть на входе стандартный дистрибутив ghc, а также дистрибутивы нужных библиотек, а на выходе - свой портабельный вариант дистрибутива.
Могу предположить, что хочется иметь некое "рабочее место", которое легко предсказуемым образом развернуть.
Имею предложить для этого два варианта:

1. IHaskell в виде Docker Image, при сборке которого можно добавить нужные пакеты. GUI классического не будет, но кое-какие элементы интерфейса можно отображать и в блокнотах, графики и изображения выводить в них же. Хороший вариант для "аналитического окружения", в котором нужно что-то читать из базы и строить диаграммы по результатам.

2. Vagrant. Оный создавался как способ получения рабочих окружений предсказуемым образом. Можно запускать Vagrant поверх докера или любой другой системы виртуализации вроде VirtualBox. И пусть Vagrant в основном предполагает использование терминала в созданном окружении, но подготовленные им виртуальные машины можно использовать и с графическим окружением. В таком виде Vagrant используют в образовательных заведения, когда нужно студентам обеспечить рабочие места на их же железе с ожидаемым зоопарком ОС — в этих случаях уже настроенный образ виртуальной машины просто выкладывают для скачивания и снабжают универсальной инструкцией по разворачиванию ("поставьте VirtualBox, поставьте Vagrant, скачайте образ, запускайте командодй").
источник

IR

IC Rainbow in Haskell
Jerzy Syrowiecki
halive вроде для этого
Оно в памяти держит пока программа рестартует. А мне надо, условно, между ребутами.
источник

JS

Jerzy Syrowiecki in Haskell
IC Rainbow
Оно в памяти держит пока программа рестартует. А мне надо, условно, между ребутами.
персистентно, как acid-state, только без acid гарантий?
источник

YS

Yan Shkurinskiy in Haskell
Jerzy Syrowiecki
это ненормально
как я понял было из-за allow-newer
источник

YS

Yan Shkurinskiy in Haskell
в проекте кабала
источник

JS

Jerzy Syrowiecki in Haskell
Yan Shkurinskiy
как я понял было из-за allow-newer
тогда всё в порядке. всё время забываю про такую "фичу"
источник

YS

Yan Shkurinskiy in Haskell
зато теперь в тестовом модуле не видит инстанс дженерика из либы -.-
источник

YS

Yan Shkurinskiy in Haskell
проблема видимо в стандалон дерайвинге
источник

YS

Yan Shkurinskiy in Haskell
Причем странно, внутри либы вроде нормально всё, а если из либы в тест - то не видит инстанса
источник