Size: a a a

🎄.NET Talks: Evergreen🎄

2020 March 12

DS

Doge Shibu in 🎄.NET Talks: Evergreen🎄
Dr. Friedrich von Never
def bitraverse[G[_], A, B, C, D]
И да, надо приводить функцию целиком, вместе с сигнатурой
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
def bitraverse[G[_]: Applicative, A, B, C, D](fab: F[A, B])(f: A => G[C], g: B => G[D]): G[F[C, D]]
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
Намного понятнее стало
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
В комментах нету пояснения, кто все эти A, B, C, D (ну лан, фиг с ними), и даже G
источник

DS

Doge Shibu in 🎄.NET Talks: Evergreen🎄
Dr. Friedrich von Never
def bitraverse[G[_]: Applicative, A, B, C, D](fab: F[A, B])(f: A => G[C], g: B => G[D]): G[F[C, D]]
Вообще - да. Тут  из сигнатуры более менее понятно, что происходит.
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
И что же происходит?
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
У нас есть некий fab (ээ, фабрика?) и пара функций, которые чего-то кладут в ээ контейнеры?
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
Получаем контейнер с фабрикой
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
Чёрт знает что, бессмыслица, если честно
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
Вроде понятно, что хотели к тупле применить пару функций и получить новую туплю
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
Но причём тут фабрика-то?
источник

DS

Doge Shibu in 🎄.NET Talks: Evergreen🎄
Dr. Friedrich von Never
И что же происходит?
Если посмотришь выше, то у нас определен тип F[_, _], от которого мы требуем, чтобы он был бифунктором и бифолдабле.

У нас есть значение типа F[A, B] и две функции A => G[C] и B => G[D].

Теперь мы хотим применить их к типам A и B внутри F[A, B], причем так, чтобы получить на выходе не F[G[C],G[D]], а G[F[C,D]]
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
Лол, в примере именно так и делают — применяют пару функций к тупле :)
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
Я не считаю, что очень уж нужна вся эта абстрактная алгебра ради того, чтобы применить пару чёртовых функций к чёртовой тупле
источник

DS

Doge Shibu in 🎄.NET Talks: Evergreen🎄
Dr. Friedrich von Never
Я не считаю, что очень уж нужна вся эта абстрактная алгебра ради того, чтобы применить пару чёртовых функций к чёртовой тупле
Ты обрати внимание на то, как они применяются.
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
Если HKT нужны именно за этим, и это и есть мотивирующий пример, то он ээ не очень впечатляет.
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
Однако, документировано на самом деле не очень плохо!
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
Я ожидал, что будет существенно хуже
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
Но я специально не полез в файлы с названиями моноидкофунктор.скала
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
Потому что я там ни хера гарантированно не пойму, но это не шибко хорошая критика, наверное
источник