@frp_ru

Страница 376 из 420
Дмитрий
02.02.2018
23:09:19
к о з и н а к и

kana
02.02.2018
23:26:13
@xgrommx можешь скинуть какую-нибудь реализацию фри-монад, где не Pure/Free, а Pure/Ap/Bind

Дмитрий
02.02.2018
23:26:55
Омг

Google
Дмитрий
02.02.2018
23:27:10
Я только сейчас понял, что у меня есть такая имплементация прямо на жс

Так как я переписывал код safareli, а он видимо уже тогда угорал как следует

Дмитрий
02.02.2018
23:28:23
ну рекурсивные схемы ты тоже не сам придумал же)

Образовательные цели, юноу

Denis
02.02.2018
23:29:00
https://github.com/srijs/haskell-free-concurrent/blob/1a56280e8d63e037cf8f9e57aa17ac6a8ac817a5/src/Control/Concurrent/Free.hs#L29-L33

kana
02.02.2018
23:31:37
хм, я раньше думал, что так делают там, где нет ленивости

но похоже такой подход дает конкурентность если использовать <*> скажем

очень хорошо

Дмитрий
02.02.2018
23:33:27
Да

Denis
02.02.2018
23:33:41
очень хорошо
это то, что ты просил?)

kana
02.02.2018
23:34:02
Да, спасибо

Denis
02.02.2018
23:34:31
видел еще где-то

Google
Denis
02.02.2018
23:34:38
но забыл где

Дмитрий
02.02.2018
23:36:09


Vasiliy
02.02.2018
23:37:29
ничего себе ты так на флоу фигачишь)

Denis
02.02.2018
23:37:31
чертовы ковариантности/контрвариантности

Дмитрий
02.02.2018
23:37:44
На тот момент игра слов в дженериках казалась мне остроумной ?

Denis
02.02.2018
23:38:20
это с какой либы?

Vasiliy
02.02.2018
23:38:36
CLAP, только заметил лол

Roman
02.02.2018
23:38:37
κραςιωο

Дмитрий
02.02.2018
23:38:55
это с какой либы?
https://github.com/zerobias/telegram-mtproto/tree/feature/mtproto3

У меня там два раздела тупо с экспериментами с фп, лол

Лень было другой проект открывать

Denis
02.02.2018
23:41:36
Дмитрий
02.02.2018
23:43:34
Хорошие новости, значит никого удар не хватил)

не нахожу тут такого
https://github.com/zerobias/telegram-mtproto/tree/feature/mtproto3/packages/telegram-mtproto/src/util/monad-t

kana
02.02.2018
23:43:45
Дмитрий
02.02.2018
23:44:27
Плюс вот тут и ещё где-то, уже не помню https://github.com/zerobias/telegram-mtproto/tree/feature/mtproto3/packages/telegram-mtproto/src/util/profunctor

Потом самое адекватное из этого перенёс в отдельную либу а потом понял что пусть такими муторными низкоуровневыми вещами занимается кто-то другой и взял immutable и fp-ts

Kelin
02.02.2018
23:47:27


Дмитрий
02.02.2018
23:48:06
Погоди, там дальше начинается слоговое письмо канадских аборигенов

Google
Дмитрий
02.02.2018
23:48:43
По большей части just for lulz

Denis
02.02.2018
23:48:43
это вы агду еще не читали

Дмитрий
02.02.2018
23:49:22
Читал, оттуда и взял идею о коде выглядящим как на тёмном наречии)

Vasiliy
02.02.2018
23:49:46
вот клевая вещь http://agda.readthedocs.io/en/v2.5.2/language/mixfix-operators.html

Kelin
02.02.2018
23:50:28
где

Дмитрий
02.02.2018
23:52:41
Я был чертовски расстроен что в жс нельзя было юзать все эти стрелки из агды

Kelin
02.02.2018
23:53:41
да ну нахер

неудобно же

как ты их печатать будешь

сниппетами забивать?

Дмитрий
02.02.2018
23:54:26


Vasiliy
02.02.2018
23:54:45
emacs quail, в других тоже такое есть полюбому

Дмитрий
02.02.2018
23:54:55
сниппетами забивать?
Автозамена ¯\_(ツ)_/¯

Vasiliy
02.02.2018
23:55:23
fp-ts это такой фп-компромисс для странных языков? блин, так перегруженно выглядит все это синтаксисом, очень сложно читать bimap<L, A, M, B, U>(f: (l: L) => M, g: (a: A) => B, fla: HKT<F, U, L, A>): HKT<F, U, M, B>; хотя мб дело привычки

Дмитрий
02.02.2018
23:55:40
Автозамена ¯\_(ツ)_/¯
Этот смайл например стоит на английском слове shugs, удобно

fp-ts это такой фп-компромисс для странных языков? блин, так перегруженно выглядит все это синтаксисом, очень сложно читать bimap<L, A, M, B, U>(f: (l: L) => M, g: (a: A) => B, fla: HKT<F, U, L, A>): HKT<F, U, M, B>; хотя мб дело привычки
Да, в жс не особо подходящий для этого синтаксис. У него по сути минимальная реализация тайпклассов через именованые метки (он их зовёт hkt)

Kelin
02.02.2018
23:57:24
сук, я так и не вкурил, че лифты делают

Vasiliy
02.02.2018
23:57:36
поднимают)

Kelin
02.02.2018
23:58:00
вот это объяснение мне ровным счетом нихера не дает, уже раз 5 слышал

Дмитрий
02.02.2018
23:58:09
fp-ts это такой фп-компромисс для странных языков? блин, так перегруженно выглядит все это синтаксисом, очень сложно читать bimap<L, A, M, B, U>(f: (l: L) => M, g: (a: A) => B, fla: HKT<F, U, L, A>): HKT<F, U, M, B>; хотя мб дело привычки
К счастью при использовании это гораздо более читабельно чем при декларации так как большая часть кода фактически служебная — гарантирует что выпллняются определенные законы

Google
Дмитрий
02.02.2018
23:58:34
Но я уже попробовал синтаксис без угловых скобок, просто опустить их, довольно забавно получается

kana
02.02.2018
23:58:58
Kelin
02.02.2018
23:59:12
хоть какие

Дмитрий
02.02.2018
23:59:26
Kelin
02.02.2018
23:59:42
в фп разумеется

Vasiliy
02.02.2018
23:59:46
нужно прочитать про монадные трансформеры или посмотреть у Москвина в самом конце на степике

kana
03.02.2018
00:00:30
Просто есть много разных лифтов и не очень ясно, про что речь

andretshurotshka?❄️кде
03.02.2018
00:00:39
коалеф конуль

kana
03.02.2018
00:00:56
liftF во фри поднимает значение с f a на Free f a lift в трансформерах поднимает с M a до "MonadM m => N m a" liftA2 поднимает функции

Kelin
03.02.2018
00:02:46
вот liftA например

Denis
03.02.2018
00:03:06
kana
03.02.2018
00:03:18
вот liftA например
Ну вот напиши/посмотри liftA2 для Mayve

И сразу интуиция появится

Denis
03.02.2018
00:04:08
вообще надо просто типы читать

Дмитрий
03.02.2018
00:05:53
<<Матерные аппликативы кметта>>

Сергей
03.02.2018
00:32:56
Я бы юзал, если бы это типизировалось)
в расте .into() типизируются )))

Дмитрий
03.02.2018
00:35:07
в расте .into() типизируются )))
Нет никакой проблемы типизировать это в случае с Map и Set, просто объекты в жс значительно сложнее чем кажутся на первый взгляд и строить типизированный подход на их основе не особо приятно

тип понятие классов уже на байткоде
Забавно, но по ходу это так и есть, случайно наткнулся сейчас на вот такое



? animufag ?
03.02.2018
01:06:29
лооол

Google
? animufag ?
03.02.2018
01:06:48
ну тип это не то место откуда ок делать вывводы

ну например динамика в груви ок живёт

и вообще джвм под смолтолк задумывалась

а в котлине сделали под джвм язык а потом запилили динамик под джс тк думали ок решение и запретили в джвм

ну это видение ситуации не достоверные сведения

Даниил
03.02.2018
01:31:40
ну то есть мне уверяли что другую модель полиморфизма туда затратно завозить
как минимум она будет несовместима с джавой, если например полиморфизм без стирания типов делоть, а без совместимости с джавой (и всеми её либами) язык на jvm пилить как правило нахуй не нужно

? animufag ?
03.02.2018
01:32:56
имя фамилия

оригинально

Даниил
03.02.2018
01:33:12
кто бы говорил)

? animufag ?
03.02.2018
01:33:53
рабочий чатик в тг)

да и раньше так себе ники были(

Даниил
03.02.2018
01:34:36
как минимум она будет несовместима с джавой, если например полиморфизм без стирания типов делоть, а без совместимости с джавой (и всеми её либами) язык на jvm пилить как правило нахуй не нужно
поэтому и в котлине типы в дженерик-функциях не стираются только если эти функции помечены как inline и следовательно из джавы вызываться уже точно не будут

? animufag ?
03.02.2018
01:37:11
норм поинт

странно что все такие за котлин начали говорить

пол года назад вообще тишина была

хотя ничего не поменялось толком

Даниил
03.02.2018
01:40:43
ну я на нём недавно работу нашёл, поэтому и говорю про него ?

Дмитрий
03.02.2018
03:15:15
Дмитрий
03.02.2018
07:04:48
А там что?

Даниил
03.02.2018
07:05:41
А там что?
конвертация между типами, для которых реализован соответствующий трейт

pub trait Into<T> { fn into(self) -> T; }

Страница 376 из 420