@frp_ru

Страница 203 из 420
kana
02.10.2017
20:02:09
короче, хаскель как язык очень неявный

он кажется очень простым, но его ленивость переворачивает вообще все, что можно

ты пишешь код в одном порядке, а он выполняется совсем в другом и извернуто, причем внешне это не очень явно

это я про RState)

Google
Denis
02.10.2017
20:15:33
везде дерево

а у хаскель граф

Dmitry
02.10.2017
20:49:03
https://github.com/citycide/babel-plugin-partial-application#lambda-parameters

выгляидт прикольно

Kelin
02.10.2017
21:27:17
ля

https://gist.github.com/Kelin2025/4515a9d17e27e73e082444d9a159b63f Заилил такую темку Вот думаю теперь, удобно ли будет хэндлить ошибки в нем?

Ну тип вдруг где-то в середине прососалось

Дмитрий
02.10.2017
21:31:11
pipeP в рамде

А вообще это полумеры, надо просто сразу брать фьючерсы

Kelin
02.10.2017
21:32:51
pipeP только промисы принимает

то есть ты не можешь смешивать с обычными коллбэками

Denis
02.10.2017
21:37:12
то есть ты не можешь смешивать с обычными коллбэками
это какая-то херня композиция или функций или стрелок Клейсли тип то должен быть один

Google
Denis
02.10.2017
22:01:19
https://www.youtube.com/watch?v=4CRbezZDb8Y

kana
02.10.2017
22:03:51
потому что жсная магия, из-за которой потом ничего в коде не понятно, как оно вообще работает

это как Promise#then, который сразу и map, и chain

Это из той же категории, где и приведение типов с ==, от чего все бегут

Kelin
02.10.2017
22:36:58
Та в смысле магия Где тут магия-то

Тот же Promise.all, только с вставками в виде обычных функций

Denis
02.10.2017
22:37:52
нет

напиши это в строгом языке

Kelin
02.10.2017
22:44:27
Ну я же не в строгом языке, посему хуле нет-то

kana
02.10.2017
23:30:42
@xgrommx вспомнил, как ты однажды этот пакет кидал - https://hackage.haskell.org/package/fixplate-0.1.7/docs/Data-Generics-Fixplate-Morphisms.html

я его посмотрл, там para и para' имеют не просто разную сигнатуру, они и ведут себя принципиально по разному

и para' вообще неверно работает)

Владимир
03.10.2017
00:54:44
https://github.com/zerobias/telegram-mtproto/blob/feature/mtproto3/packages/telegram-mtproto/src/state/index.h.js Типа вот так
Зачем ты пишешь так? export type ClientList = { ids: string[], [uid: string]: Client, } Разве бывает uid не строкой? Если не брать символы

Владимир
03.10.2017
01:03:14
Забыл про мэпы, в которых ключи объектами бывают

Да, тогда это имеет смысл

Удивило что ключ в простом объекте может быть string или symbol

Показалось лишней операцией определения типа

Google
Дмитрий
03.10.2017
01:08:47
Но вообще я пожалуй больше не буду использовать объекты как такие вот мапы, уж больно неудобно и в тайпскрипте и в флоу, и в перспективе удобнее не станет

Только нормальные Map

Владимир
03.10.2017
01:13:33
А флоу получается разделяет обращение к свойству объекта передавая строку или число?



Дмитрий
03.10.2017
01:14:40
В смысле разделяет??

Владимир
03.10.2017
01:16:39
Эти записи равнозначны Obj[1]= "a" Obj["1"]="a" Как при записи так и при обращении к свойству

Но во флоу в примере мы все равно указываем тип как намбер

Дмитрий
03.10.2017
01:18:09
Против чего флоу и создавался)

Владимир
03.10.2017
01:19:27
Ага, понял, спасибо

andretshurotshka?❄️кде
03.10.2017
02:43:50
https://github.com/TylorS/typed-stream

TylorS как gcanti упоролся

каждый день новая typed-* либа

Дмитрий
03.10.2017
03:49:49
?

andretshurotshka?❄️кде
03.10.2017
04:34:13
splitEither<A, B>(either$: Stream<Either<A, B>>): [ Stream<A>, Stream<B> ]

?

Даниил
03.10.2017
05:12:27
Ну я же не в строгом языке, посему хуле нет-то
В нестрогом языке так-то следить за типами надо внимательнее, чем в строгом

Denis
03.10.2017
08:27:16
para :: Recursive t => (Base t (t, a) -> a) -> t -> a

Google
Denis
03.10.2017
08:28:25
просто тут более общий Base

para :: Functor f => (f (Mu f, a) -> a) -> Mu f -> a

идея таже

а вот para' более естественна потому что ничего в ЛИ не было кроме стрелок

https://github.com/ekmett/recursion-schemes/blob/master/Data/Functor/Foldable.hs#L512 предполжим теперь что наш Recursive t это Functor f => Fix f para :: Functor f => (Base (Fix f) ((Fix f), a) -> a) -> (Fix f) -> a исходя из того, что базовым функтором для f есть Base (Fix f) то можно заменить и получим para :: Functor f => (f(Fix f, a) -> a) -> Fix f -> a а зная что Mu < Fix < Nu то вот тебе тоже самое, просто у Кметта более обобщенно, не только про Fix,Nu,Mu и можно придумать изоморфизмы и через что-то другое

например базовым функтором для списка может быть data ListF a b = NilF | ConsF a b

type instance Base (List a) = ListF a

ну и понятно сделать представителем Functor, Foldable,Traversable,Recursive, Corecursive

kana
03.10.2017
09:23:40
почему же? (,) и (->) это же uncurry,curry
Разные ответы на одни и те же данные)

Denis
03.10.2017
09:24:59
ну как бы это две взаимообратные штуки)

((x => (g => f => xs => length(xs) < 1 ? [] : [f(head(xs)), ...g(f)(tail(xs))])(y => x(x)(y)))(x => (g => f => xs => length(xs) < 1 ? [] : [f(head(xs)), ...g(f)(tail(xs))])(y => x(x)(y))))(x => x * 10)([1,2,3])

((x => (f => xs => length(xs) < 1 ? [] : [f(head(xs)), ...x(x)(f)(tail(xs))]))(x => (f => xs => length(xs) < 1 ? [] : [f(head(xs)), ...x(x)(f)(tail(xs))])))(x => x * 10)([1,2,3])

и все это соберется в [10, ...[20, ...[30, ...[] ] ] ]

кому интересно средуцируйте с нуля

Y(g => f => xs => length(xs) < 1 ? [] : [f(head(xs)), ...g(f)(tail(xs))])(x => x * 10)([1,2,3])

где Y = f => (x => f(y => x(x)(y)))(x => f(y => x(x)(y)))

ну и const map = Y(g => f => xs => length(xs) < 1 ? [] : [f(head(xs)), ...g(f)(tail(xs))])

Kelin
03.10.2017
11:31:24
Ебаный ад

illiatshurotshka❄️
03.10.2017
11:32:14
зачеммммм

Denis
03.10.2017
11:33:41
сделать бета редукцию)

Google
Denis
03.10.2017
11:34:25
зато не нужна явная рекурсия

andretshurotshka?❄️кде
03.10.2017
11:41:07
лямбда бота надо запилить

Дмитрий
03.10.2017
11:47:56
Denis
03.10.2017
11:48:27
Kelin
03.10.2017
11:51:23
Дмитрий
03.10.2017
11:53:33
А зачем такие структуры?
Эффективность копирования и добавления элементов

Denis
03.10.2017
11:55:16
полный файл с шагами https://gist.github.com/xgrommx/e7b69527662bbb0f5443ce8ca4882b72

Alex
03.10.2017
12:12:39
где Y = f => (x => f(y => x(x)(y)))(x => f(y => x(x)(y)))
я вижу точку, она неподвижна

по-моему прикольно?? не знаю стоит ли такое в продакшн, но для себя - просто прекрасно

Denis
03.10.2017
12:14:51
это же только начало для рекурсивных схем

Павел
03.10.2017
12:25:28
Есть кто из Тулы?

? animufag ?
03.10.2017
15:34:09
кстати ребзя, вас это почти никак не касается но думаю может заинтересовать https://github.com/47deg/KEEP/blob/7494c84af180a00cd91e6bd0f86f3c7db0758757/proposals/type-classes.md ну и вообще в слаке эту инициативу поддерживает елизаров

illiatshurotshka❄️
03.10.2017
15:35:09
тайплкассы без адт?

? animufag ?
03.10.2017
15:35:49
https://kotlinlang.org/docs/reference/sealed-classes.html

illiatshurotshka❄️
03.10.2017
15:36:29
ого

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