@frp_ru

Страница 160 из 420
Дмитрий
14.09.2017
11:10:35
Допустим есть какой-то Box, содержащий объект T class Box<T> { value: T constructor(value: T){ this.value = value } } Тогда class CanAp<I, O> extends Box<I => O> { } Вот инстансы второго класса можно будет отправлять в ap

То есть ap рассматривает переданный объект, как содержащий функцию, а не как функцию саму по себе

? animufag ?
14.09.2017
11:32:52
map для функции можно

Aleh
14.09.2017
11:35:08
фу, extends

Google
andretshurotshka?❄️кде
14.09.2017
11:35:18
лол

illiatshurotshka❄️
14.09.2017
11:35:28
фуу тс

Aleh
14.09.2017
11:35:43
я когда вижу extends у меня сразу агрессия какая-то и зубы скрипят

(c) Alan Kay

фуу тс
это скорее flow

в ts тип функции нельзя задать как Type1 => Type2, только как (t: Type1) => Type2

illiatshurotshka❄️
14.09.2017
11:38:24
я не про код пожара

Aleh
14.09.2017
11:38:56
а, так-то абсолютно согласен)

andretshurotshka?❄️кде
14.09.2017
11:47:28
Maxim
14.09.2017
12:48:04
CallIf - вижу как моноид, есть ассоциативность, есть нулевой элемент _ => true

есть ли каноничный способ наращивать его добавлением функций предикатов ?

Дмитрий
14.09.2017
12:50:10
Validation

Google
Дмитрий
14.09.2017
12:50:43
Или через either или maybe .chain

Maxim
14.09.2017
12:51:24
окей, вижу инфу про Validation monad - спасибо

Дмитрий
14.09.2017
12:51:39
Я вообще для этого кейса впилил метод .cond

Maxim
14.09.2017
12:56:43
cond вместо ap

и всё путём

Дмитрий
14.09.2017
13:02:14
Ой, точнее не cond, а слегка другой) const checkPositive = { cond: x => x > 0, pass: x => 'Positive value: ' + x, fail: x => new Error( `Must be positive ` + x ) } Either .of( 0 ) .logic( checkPositive ) // => Left( Error( Must be positive 0 ) ) `

Maxim
14.09.2017
13:03:04
мне вообще не нужен лефт

Дмитрий
14.09.2017
13:04:08
Такой же метод есть у Maybe, там без left

? animufag ?
14.09.2017
13:04:54
я когда вижу extends у меня сразу агрессия какая-то и зубы скрипят
Ну так если у него метод назывался не extends то самому можно такой написать

Дмитрий
14.09.2017
13:35:46
Ilya
14.09.2017
15:57:11
Товарищи, пытаюсь использовать рамду с тсом, не понимаю мотивации за этим дефинишеном



В доках рамды написано что isNil возвращает булеан.

Я понимаю конечно что имели ввиду за этим дефинишеном, но в итоге я не могу сделать из функции Boolean потому что типы не совпадают.

Хотя наверное за этим надо лучше иди в ТС конфу, но я такой не знаю. :V

Ilya
14.09.2017
15:59:29
Спасибо.

nvm, сыграл в утоку и разрезолвил проблему.

Google
andretshurotshka?❄️кде
14.09.2017
18:53:03
?

Maxim
14.09.2017
19:20:13
Чего лучше придерживаться по началу, для неискушённого: fantasy-land or static-land?

andretshurotshka?❄️кде
14.09.2017
19:20:55
fantasy

Maxim
14.09.2017
19:31:17
Static выглядит понятнее

Особенно ts-static-land

После тс)

Kelin
14.09.2017
19:32:18
Ребята



Maxim
14.09.2017
19:33:09
Что такое flow?

Kelin
14.09.2017
19:33:20
типа pipe

Maxim
14.09.2017
19:35:46
Неочевидно имхо, может стоит посмотреть на ramda.applySpec

Kelin
14.09.2017
19:35:57
У меня объект {a: [ { name: ... , ... }, ... ] ...}

Kelin
14.09.2017
19:36:27
и мне нужно по {type: 'a', name: 'lol'} взять из a все с name=='lol'

соответственно, если нет одного из параметров, фильтровать не нужно

Maxim
14.09.2017
19:37:31
Фильтр массива

Aleh
14.09.2017
19:38:52
тебе и команде легко такое читать?

Maxim
14.09.2017
19:38:59
Непонятна полностью структура на входе

Kelin
14.09.2017
19:39:47
тебе и команде легко такое читать?
так вот я и спрашиваю, херово или нет

это не в команде, это свои поделки

Aleh
14.09.2017
19:40:06
так вот я и спрашиваю, херово или нет
кто ж за тебя и твою команду скажет ?

Google
Maxim
14.09.2017
19:40:32
Херово компоуз юзать для сложных выражений

andretshurotshka?❄️кде
14.09.2017
19:40:32
лодаш

Aleh
14.09.2017
19:40:46
лично мне такое не нравится, но это сугубо личное

Kelin
14.09.2017
19:41:03
вот есть такой специфичный кейс, как бы вы реализовали

Maxim
14.09.2017
19:42:13
Ну хотя бы на две части разбей, оно вроде бьётся у тебя, и засунь в компоуз две части

Admin
ERROR: S client not available

Maxim
14.09.2017
19:42:36
flow(a, b)

Ну и дальше разбивай их, одно выражение городить сложно

Kelin
14.09.2017
19:44:12
Ну и дальше разбивай их, одно выражение городить сложно
Если дальше - можно и на 100500 функций разбить, так еще сложнее разобрать будет, мне кажется

Maxim
14.09.2017
19:44:34
Проще будет

Стопицот не будет, много тождественных выявится

kana
14.09.2017
19:46:16
Если ты пишешь коммент, то может проще вынести трансформацию в отдельную переменную?

В отдельную функцию в данном случае. Имя функции - естественный комментарий

Kelin
14.09.2017
19:49:49


Maxim
14.09.2017
19:51:19
намного лучше же )

kana
14.09.2017
19:51:20
Но этот код можно так красиво и читаемо переписать без поинтфри. Тут его просто пытаются впихнуть, потому что можно

Maxim
14.09.2017
19:51:56
он переписал с поинт фри - норм

andretshurotshka?❄️кде
14.09.2017
19:52:32
спамер?

kana
14.09.2017
19:52:55
Эм, было поинтфри, поинтфри и осталось

Google
Kelin
14.09.2017
19:53:09
там ребята в чатике по эликсиру хотят бота запилить

чтобы новички в чате капчу вводили

типо антиспам

andretshurotshka?❄️кде
14.09.2017
19:53:44
Kelin
14.09.2017
19:53:45
только какой алгоритм будет - не очень понятно

если бот будет срать в чат, то это тупо

а если в лс писать, еще тупее

Antony
14.09.2017
19:53:59
Сам спамер

andretshurotshka?❄️кде
14.09.2017
19:54:06
В лс нельзя написать

Хотя если бот юзер

Kelin
14.09.2017
19:54:13
А пожар все пишет и пишет

andretshurotshka?❄️кде
14.09.2017
19:54:18
Antony
14.09.2017
19:54:37
Нот эт ол

Kelin
14.09.2017
19:54:38
Сам спамер
неплохо

Дмитрий
14.09.2017
19:55:23
и мне нужно по {type: 'a', name: 'lol'} взять из a все с name=='lol'
Я бы привёл всё к нормальной форме const insertTypeField = ([ type, values ]) => values.map( assoc('type', type) ) const addType = objMap => chain( insertTypeField, toPairs( objMap ) ) А потом получившийся массив можно просто фильтровать

Kelin
14.09.2017
19:56:13
а что делает assoc

а, это типа как set

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