
Brandon
27.09.2017
15:54:13
Добрый день

? animufag ?
27.09.2017
15:55:47

andretshurotshka?❄️кде
27.09.2017
15:56:28
?

Gleb
27.09.2017
16:17:11
Что то хочу тупой вопрос задать

Google

Gleb
27.09.2017
16:17:13
Задам

Дмитрий
27.09.2017
16:18:17
давай

Kelin
27.09.2017
16:20:31
го

Gleb
27.09.2017
16:21:27
В композиции нужно часто принимать несколько параметров, пример таому какой нибудь equal,
То есть нужен a и b, и нужно чтобы каждая функция в композиции как бы возвращала a и b.
Скажем хочу compose(eq1,eq2,eq3)
В общем что то вроде AP только с несколькими параметрами. Я с учетом того что у меня TSможно указать количество элементов в массиве и получается ну типа кортежа и перед каждой функцией делаю рест оператор. вот
Как должна выглядеть композиция с несколькими параметрами?

Дмитрий
27.09.2017
16:21:44

Kelin
27.09.2017
16:22:13
О, у меня такой вопрос был
Я написал костыль в виде связки over + flow (лодашевские), мне сказали, что я дурачок
(:

Gleb
27.09.2017
16:22:29
Воо я такие же темы там делаю

Дмитрий
27.09.2017
16:22:58

Kelin
27.09.2017
16:23:23
как вариант - каррировать и один из аргументов передавать явно
только нахрена тебе compose, если ты обращаешься к обоим начальным аргументам?
или я не так понял

Gleb
27.09.2017
16:24:17
Мне нужно список из булева собрать

Google

Gleb
27.09.2017
16:24:51
Черт так я напиздел
это не композиция
то что я описываю
нет я все таки не правильно описал

Kelin
27.09.2017
16:25:32
пиздец
бывают же такие
хочу это @@@ а нет, я напиздел, я это не хочу

Дмитрий
27.09.2017
16:26:09

Gleb
27.09.2017
16:26:10
Не топи

? animufag ?
27.09.2017
16:28:04
пример конкретный

Kelin
27.09.2017
16:28:40
да
так проще
У кого-то было в рамде Cannot read property 'fantasy-land/map' of undefined ?

kana
27.09.2017
16:36:35
map (и все функции, которые его вызывают), сначала пытаются найти метод "fantasy-land/map", потому "map". Значит ты просто-то куда-то отдал undefined

andretshurotshka?❄️кде
27.09.2017
16:37:43
флоу ставь)
хотя с рамдой не поможет
?

illiatshurotshka❄️
27.09.2017
16:38:13
а какая альтернатива рамде для flow

andretshurotshka?❄️кде
27.09.2017
16:38:26
я про то, что типы некоторые не описать

Google

illiatshurotshka❄️
27.09.2017
16:38:33
лоол

andretshurotshka?❄️кде
27.09.2017
16:38:53
В флоу есть тип для композа встроенный уже хорошо
$Compose

kana
27.09.2017
16:39:26
я уже опоздал, но порядок compose достаточно логичен и устоялся уже тоже довольно давно в математике.
(f ∘ g)(x) = f(g(x))

Kelin
27.09.2017
16:40:09
ну в императивном стиле сначала будет g, потом f
как последовательность действий

illiatshurotshka❄️
27.09.2017
16:40:16
after = (.)
(f `after` g) x

kana
27.09.2017
16:40:35
ну так у нас не последовательность действий, лол, у нас композиция функций. Даже не императив. Функции - это в принципе не действия

Kelin
27.09.2017
16:40:48

illiatshurotshka❄️
27.09.2017
16:40:54
хуиська

Kelin
27.09.2017
16:41:10
8=>

andretshurotshka?❄️кде
27.09.2017
16:41:19
o3

andretshurotshka?❄️кде
27.09.2017
16:41:24
o(o, o)

illiatshurotshka❄️
27.09.2017
16:41:40
o(w)o

andretshurotshka?❄️кде
27.09.2017
16:42:08

Kelin
27.09.2017
16:42:26

Evgeny
27.09.2017
16:42:49
сиська
Есть ещё “blackbird combinator” — (.).(.)

illiatshurotshka❄️
27.09.2017
16:42:51

Kelin
27.09.2017
16:43:01
Вооброжаемый андрей

Google

Evgeny
27.09.2017
16:43:37

andretshurotshka?❄️кде
27.09.2017
16:43:42
_|_ боттом тип

illiatshurotshka❄️
27.09.2017
16:44:00
blackbird :: (c -> d) -> (a -> b -> c) -> a -> b -> d
blackbird f g x y = f (g x y)
это разве (.).(.)

Kelin
27.09.2017
16:44:24
а смысл
ебаный в рот, сколько всеггооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо

Evgeny
27.09.2017
16:45:00
https://m.youtube.com/watch?v=seVSlKazsNk
И ещё вот тут про него есть http://adit.io/posts/2013-07-22-lenses-in-pictures.html

illiatshurotshka❄️
27.09.2017
16:46:35

Admin
ERROR: S client not available

illiatshurotshka❄️
27.09.2017
16:46:40
мемы

Evgeny
27.09.2017
16:48:57

Gleb
27.09.2017
16:49:22
Кейс следующий я поверх либы делаю небольшую обвязку. Либа та принимает a и b, мне нужно сделать что то вроде миделевров , апдейтеров, как угодно,
Пусть функция той либы IneedAandB
То есть ну покажу как получилось
_.compose(IneedAandB, midn, mid1, toTuple)
Где toTuple a -> b -> (a, b) Это типа картеж, ну или обычный массив в js, в общем оперирую я этим делом как картежем а потом вызвать бы ineedAandB уже не как кортеж а с двумя парамтерами, ну или там по всем канонам карировать, без разницы
понеслась

andretshurotshka?❄️кде
27.09.2017
16:50:14
чет не понял
напиши входной и выходной тип

Gleb
27.09.2017
16:51:38
Я в наскальной живописи не особа ориентируюсь но
(a, b) -> (a -> b) -> Boolean
Просто IneedAandB это функция которая A и B принимает двумя парамтерами, так бы я само собой рест оператором это резолвил

Kelin
27.09.2017
16:52:47

andretshurotshka?❄️кде
27.09.2017
16:52:49

Google

andretshurotshka?❄️кде
27.09.2017
16:53:14
unapply
?

Gleb
27.09.2017
16:53:56
Баля все гениальное просто
Спасибо

Kelin
27.09.2017
16:54:11
пиздец да
тоже такой сидишь тупишь

andretshurotshka?❄️кде
27.09.2017
16:54:17
С этого типа тож не оч понял кстати, пришлось перечитать

Kelin
27.09.2017
16:54:21
а там все просто, оказывается
одним словом названо

? animufag ?
27.09.2017
16:54:36
погоди
а как же compose

andretshurotshka?❄️кде
27.09.2017
16:55:00
идем от обратного, нужен метод, который принимает массив и функцию и делает спред аргументов. Называется она apply, если даже в стандартной либе жс. Значит нам нужна обратная функция, и имя ей - unapply, именно так в рамде она и называется:
unapply(id)(1, 2, 3) === [1, 2, 3]

? animufag ?
27.09.2017
16:55:03
разве проблемы с композом у тебя разрешились?

Kelin
27.09.2017
16:55:34
неужели, у меня одного так?

illiatshurotshka❄️
27.09.2017
16:56:44

andretshurotshka?❄️кде
27.09.2017
16:57:34
че это
А

? animufag ?
27.09.2017
16:57:44
просто как-то странно что подобралось столько функций готовых принять туплы

Gleb
27.09.2017
16:58:32
В общем я и ушел от первого вопроса Потому что ну можно и квртежем обойтись

illiatshurotshka❄️
27.09.2017
16:58:45
const meme = (...x) => compose(...x.reverse());

Kelin
27.09.2017
16:58:57