@frp_ru

Страница 119 из 420
andretshurotshka?❄️кде
25.07.2017
17:18:28
да это понятно-то

Vadim
25.07.2017
17:18:41
>> то есть вполне возможно что ты подходишь к решению задачи исходя из имеющихся знаний Отчасти да. Но я согласен что линзы это полезная штука. Просто просмотрев (хоть и не очень подробно) документацию partial, мне не бросилось особо в глаза примеров, которые было бы особо труднее реализовать через рамда. Исключение - линзы с рекурсивностью. А все остальное как-то не впечатлило. Хотя может действильно я еще не вкурил )

? animufag ?
25.07.2017
17:19:22
https://github.com/robpike/filter

Google
Vadim
25.07.2017
17:19:53
Да. Отчасти о нем тоже вспоминал глядя на кейсы partial

Denis
25.07.2017
17:20:12
ivy курильщика https://github.com/robpike/ivy

Vadim
25.07.2017
17:21:45
А уж если начнешь в проекте прикручивать partial, то глядя на этот код коллеги точно решат тебя сжечь )

Denis
25.07.2017
17:22:06
та и от рамды могут сжечь с rx

Vadim
25.07.2017
17:22:39
Это половина того ужаса, который может вселить вид partial )

? animufag ?
25.07.2017
17:22:51
ну rx он такой. хуяк хуяк сабжектов и вроде реактивный код

Denis
25.07.2017
17:23:12
? animufag ?
25.07.2017
17:23:25
ещё поглобальней вынести ссылки и подписываешь в любом месте кода.

andretshurotshka?❄️кде
25.07.2017
17:23:55
)))

у меня subject в драйвере так что все законно

?

Google
Yumi
25.07.2017
21:12:06
то есть вполне возможно что ты подходишь к решению задачи исходя из имеющихся знаний
Есть кстати неплохой способ, всюду что-то использовать и потом перестать, тогда прям ощущаешь где что-то нужно, а где нет. Онли интуиция.

Artur
25.07.2017
22:55:19
хорош, на интуицию полагаться эт как раз то что нам нужно)

? animufag ?
25.07.2017
23:15:08
хорош, на интуицию полагаться эт как раз то что нам нужно)
на самом деле норм это слово использовать как положительное. как-то препод по лингвистике пояснял про зависимые типы (например про сигму и пи), в начале определение и затем такой "интуиция этих понятий следующая..."

я конечно не вспомню что там было)

andretshurotshka?❄️кде
25.07.2017
23:25:28
подсветку TL влили в гитхаб ееее

https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/Resources/scheme.tl

const parse = (text) => pipe(reduce((acc, p) => { return { list: [...acc.list, { text: text.slice(acc.last, p.offset) }, { _: p._, text: text.slice(p.offset, p.offset + p.length), } ], last: p.offset + p.length } }, { list: [], offset: 0 }), prop('list'))

как тут выпилить стейт?

? animufag ?
26.07.2017
01:35:25
стейт = text?

andretshurotshka?❄️кде
26.07.2017
01:43:17
стейт last

ну и text можно

? animufag ?
26.07.2017
02:29:26
ну, тут сложноватая штука с этим подчёркиванием. а так подгатавливаешь список, где нужно вырезать. типа [[0], prop(list).map([p.offset], [p.offset + p.length /* где-то тут можно зашить p._ */])].flatten.uniq и как-то это нужно замапать на splitAt или сделать второй смещёёный список (например с добавленным 0 в начале) и его zipWith((,)) и slice

andretshurotshka?❄️кде
26.07.2017
02:54:33
Чет как-то запутанно

Roman
26.07.2017
10:00:38
нубский вопрос, как рамдовские тайпинги для тс подружить с импортом через ramda/src/ ?

работает нормально только если писать import { map } from ‘ramda’;

но так тришейкинг не работает

kana
26.07.2017
10:04:16
для тришейкинга есть https://www.npmjs.com/package/babel-plugin-ramda

нужно, чтобы сначала типы чекались, а потом бабель проходил (а в таком порядке обычно тс и бабель и комбинируют)

Google
Denis
26.07.2017
10:14:20
rx,most,... это все императивное решение которое имеет конечный результат что и у фрп

Roman
26.07.2017
10:18:27
нужно, чтобы сначала типы чекались, а потом бабель проходил (а в таком порядке обычно тс и бабель и комбинируют)
этот плагин я видел, но разве бабель и тс не используются либо/либо в основном?

у меня тс собирается своим лоадером, бабеля нету

kana
26.07.2017
10:19:45
Ну лично я бы использовал тайпскрипт чисто для тайпчекинга, оставляя код как есть

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

Denis
26.07.2017
10:20:28
дно

Roman
26.07.2017
10:20:50
я бы тоже много чего сделал, но я не один над проектом работаю

и не я такие решения принимаю

Denis
26.07.2017
10:44:06
что это за залупа? https://github.com/tpoulsen/recursion_schemes/blob/master/lib/recursion_schemes.ex#L40

Roman
26.07.2017
12:35:15
готовые же есть

andretshurotshka?❄️кде
26.07.2017
12:35:42
Они просто для ramda, я имею ввиду declare module 'ramda/src/map' { ... }

Roman
26.07.2017
12:36:34
https://github.com/types/npm-ramda

только они рассчитаны на то, что ты монолитный инстанс юзаешь

а

понял

andretshurotshka?❄️кде
26.07.2017
12:38:42
как у димы в флоу

https://github.com/zerobias/telegram-mtproto/blob/feature/mtproto3/flow-typed/ramda_vx.x.x.js#L1120

Google
Roman
26.07.2017
12:39:42
https://github.com/types/npm-ramda
лол, откуда эта превьюха?

andretshurotshka?❄️кде
26.07.2017
12:40:16
это фото организации

вообще мейнтейнер этих типов рамды немного упоротый

Roman
26.07.2017
13:27:16
Они просто для ramda, я имею ввиду declare module 'ramda/src/map' { ... }
а можно в нем заюзать объявление функции, которое написано в npm-ramda?

или копипастить все?

andretshurotshka?❄️кде
26.07.2017
13:27:57
?

import { func } from 'ramda' export default func

Roman
26.07.2017
13:30:37
шторм не подтянул тайпинги

declare module 'ramda/src/map' { import { map } from 'ramda'; export default map; }

andretshurotshka?❄️кде
26.07.2017
13:31:03
как?

Admin
ERROR: S client not available

andretshurotshka?❄️кде
26.07.2017
13:31:07
А тайпскрипт

Roman
26.07.2017
13:32:17
ну у меня цель комплишен в иде

елси без него, то можно и просто import { map } from 'ramda/src/map’

Дмитрий
26.07.2017
13:38:07
Никто ещё не предложил babel-plugin-ramda?

andretshurotshka?❄️кде
26.07.2017
13:39:48
у него бабела нет

Дмитрий
26.07.2017
13:41:57
Аа

Vadim
26.07.2017
16:16:58
Народ! Рамдовский метод composeK требует что б каждый из методов в цепочке возвращал контейнер того же типа, что и предыдущий: composeK(s => Maybe.Just(s + 1), s => Maybe.Just(s + 1), s => Maybe.Just(s))(5) //=> Maybe.Just(7) А можно ли писать проще? Что б не прописывать возвращене контейнера каждый раз, тем более что вернуть ты можешь в любом случае контейнер того же типа. Иными словами, можно ли в рамде встроенными создать цепочку вызовов без создания какой либо утилитной функции своими руками? В смысле что б писать не так: const ofMaybe = fn => a => Maybe.Just(fn(a)); composeK(ofMaybe(inc), ofMaybe(inc), ofMaybe(identity))(5) //=> Maybe.Just(7) а как-то так: method(inc, inc, s => Maybe.Just(s))(5) //=> Maybe.Just(7) ?

Google
Vadim
26.07.2017
16:18:43
Понял только про хуйню

О чем второе предложение?

Denis
26.07.2017
16:19:30
Int -> Int -> [Int] -> Int -> [Int] как ты себе такой трешак представляешь?

ты хочешь смешать 2 категории

a -> b Monad m => a -> m b

стрелки Клейсли с функциональными стрелками

Vadim
26.07.2017
16:22:09
Хотя сорри! Мой кейс вполне заменяется методом map контейнера ) Maybe.Just(5).map(inc).map(inc) //=> Maybe.Just(7)

Denis
26.07.2017
16:22:27
ну вот)

или compose(map, map, filter)(Maybe.Just(5))

и если у тебя 2 рядом map то лучше map(o(f, g))

это фьюжен

Дмитрий
26.07.2017
16:40:24
Ilya
26.07.2017
18:38:52
Бля, на меня снова накатало.

Расскажите мне, пожалуйста, в человеческих, можно даже "поцанских", терминах, что такое монада касательно программирования?

Всё что я понял из мирриады статей это то что монада в скалке это любой тип с флатМапом но наверное есть чёт ещё?

Я открываю статьи, и там либо паста про эндофункторы, либо я вроде понимаю, но потом иду к холодильнику за колой и понимаю, что ничего не понимаю.

И так по кругу.

Ilya
26.07.2017
18:47:59
Проиграл с введения, спасибо. Возможно в этот раз пойму, люблю смешные пояснения.

Т.е. монада это типо контейнера который соблюдает вот эти три правила на правый юнит, левый юнит и ассоциативность?

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