@frp_ru

Страница 67 из 420
Denis
19.05.2017
16:38:32
Ну тут только стримы

Я в rx 4 добавлял метод что хватает трансдьюсер и обрабатывает сигнал

Vadim
19.05.2017
16:40:55
Тогда другой вопрос: можно ли в ramda сделать каррированную функцию, которая не вернет "финальный" результат пока не выполнится условие?

Короче, пока допустим сумма переданных чисел не будет равна 10?

Google
Vadim
19.05.2017
16:41:29
Пока условие не выполнено она будет возвращать саму себя каррированную

Denis
19.05.2017
16:42:07
Кинь решение

Дмитрий
19.05.2017
16:46:04
У чейна есть неочевидная киллер-фича — с его помощью можно делать контекст

Vadim
19.05.2017
16:46:38
Думаю в рамда моя задача нереализуемая, так как происходит мутация функции, что противоречит идеологии библиотеки

Дмитрий
19.05.2017
16:46:50
Неа

У меня, увы, не на рамде было, я static land имплементировал, сейчас постараюсь выдлить минимальный пример

Denis
19.05.2017
16:50:04
Хм, ну вообще-то монада функции это ридер

И это все очевидно

И ты как чувак с ником монады должен это знать)

Дмитрий
19.05.2017
16:53:48
То то я этого в спеке не заметил)

Заметь, не я предложил это на генераторах решать)

Denis
19.05.2017
16:54:42
У них просто есть хоть какая никакая возможность имитировать ленивость

Google
Дмитрий
19.05.2017
16:54:56
Омг

Denis
19.05.2017
16:55:00
В какой спеке?

Дмитрий
19.05.2017
16:55:08
ЯСНО

Denis
19.05.2017
16:55:39
Потом свой jsbin скину

Дмитрий
19.05.2017
16:57:01
Окай

Denis
19.05.2017
16:57:25
А что за спека?

Denis
19.05.2017
16:58:04
Вообще монада функцинальной стрелки это чтение из статического окружения

А, все эти спеки до жопы, учите хаскелль или пурсу

Nikita
19.05.2017
16:59:25
пурсу?

Denis
19.05.2017
17:00:53
Purescript

Дмитрий
19.05.2017
17:02:22
Вообще монада функцинальной стрелки это чтение из статического окружения
Э, не, сегодня моя очередь объяснять, почему я выбрал монаду а не rx))

Nikita
19.05.2017
17:03:17
Purescript
а! понял :)

Дмитрий
19.05.2017
19:16:10
В жс не всегда удачный синтаксис для этого, поэтому пришлось заюзать классы) Но заметь, строго иммутабельно

При этом получается интересная фича — фактически, в каждом chain первым аргументом приходит контекст выполнения

Google
Vadim
20.05.2017
07:52:00
http://runkit.com/zerobias/monad-example
Спасибо! Конечно удивительно громозкий код для такой простой задачи ) Но понятно что цель была реализовать именно с помощью ramda

Vladimir
20.05.2017
08:27:41
это R.curry & R.curryN

Vadim
20.05.2017
08:50:06
это R.curry & R.curryN
Они обе не подходят, так как требуют явного указания числа параметров, то есть арити

Нечаянно удалил сообщение с задачей :/ Короче, задача была такая: // curryMaker(condition); // “getResult" should return curried itself until sum of passed arguments equals 10. const getResult = curryMaker((arg) => arg < 10); getResult(5)(3)(2); // => 10 Короче, функция должна возвращать каррированную себя же до тех пор, пока не выполнится условие. При этом, нужно избежать браузерного ограничения на глубину скопа. При решении через рекурсию может получиться большая вложенность скопов.

Yumi
20.05.2017
09:03:04
reduce отлично помогает избегать ограничение скопа.

Aleh
20.05.2017
10:48:16
Если вам нужен минификатор js, то значит вы пишите на js :)

Vadim
20.05.2017
13:24:44
только curryN требует
Через метод curry ты не сделаешь так, что б функция возвращала неограниченное число раз себя. Там это ограничение явно задается через length изначальной функции

Yumi
20.05.2017
14:22:18
https://github.com/jfmengels/eslint-plugin-fp/blob/master/readme.md Юзал кто-то?

Дмитрий
20.05.2017
18:27:58
Спасибо! Конечно удивительно громозкий код для такой простой задачи ) Но понятно что цель была реализовать именно с помощью ramda
Ну это не для такой задачи, 90% кода там — это непосредственно реализация монадических законов и прочего, фича в том. что для практически любых других задач дополнительный код уже практически не потребуется Например у меня была реализация валидации, сбор ошибок из валидации списка валидаторов с тестируемым объектом, на выходе - список ошибок и решение, валидация прошла или нет. Занимает — 5 строчек не считая точно того же шаблонного кода)

А если использовать модули fantasy-* из репы fantasy-land, то можно обойтись вообще только конкретными функциями для фильтрации

Дмитрий
20.05.2017
18:29:31
Так как всё выше - это просто fantasy-states + fantasy-tuples

Но так как автор этого всего надёжно ливнул с етого вашего жеэс, то пока я решил, что этими модулями пользоваться не буду ?

Лично у меня нет такого идеального кода чтобы соответствовать этому линтеру

Yumi
20.05.2017
18:34:24
Я вот не знаю, как без контекста, если у меня например умный компонент.

Дмитрий
20.05.2017
18:34:39
Ну тут легко

Yumi
20.05.2017
18:34:45
И как?

Дмитрий
20.05.2017
18:34:53
Использовать функциональные компоненты

Google
Дмитрий
20.05.2017
18:35:07
И статичные функции от аргументов

Но это дно

Yumi
20.05.2017
18:35:33
Использовать функциональные компоненты
Это когда мне контекст, как аргумент приходит в компонент?

Дмитрий
20.05.2017
18:35:56
Вроде да, хз, я не пользуюсь контекстом

Но это дно
По этой же причине, я, поигравшись, решил забить на static-land, потому что он вербозный просто жуть как

А в fantasy-land — лол — используется this

Admin
ERROR: S client not available

Yumi
20.05.2017
18:39:50
А у тебя есть, что-то свежее, чтобы посмотреть, как ты именно сейчас реакт приложения пишешь?

Дмитрий
20.05.2017
18:45:27
Ну если только небольшие примеры) Сейчас, чуть позже расшарю

Но там ничего сверхъестьественного, обычный react, redux

Я просто изначально хз, где мне может помочь контекст, что бы я не мог сделать без него

Единственно что вспоминается — это react-router, но в своих проектах я его тоже выкинул

Дмитрий
20.05.2017
18:48:37
universal-router

Там async components из коробки, без проблем, а сколько вжухов надо сделать, чтобы заставить их работать в react-router

Vladimir
20.05.2017
19:50:25
Вроде да, хз, я не пользуюсь контекстом
а как ты делаешь l10n, redux и theming?

Дмитрий
20.05.2017
19:59:40
а как ты делаешь l10n, redux и theming?
Я иммею ввиду что я непосредственно сам контекст не дёргаю В react-redux контекст под капотом, в l10n — тоже

Vladimir
20.05.2017
20:00:05
ну норм

так и нужно

Google
Vladimir
20.05.2017
20:00:21
и маппить его в пропсы

кста

andretshurotshka?❄️кде
21.05.2017
16:56:13


Denis
22.05.2017
08:13:35
recursion schemes это круто) долой явную рекурсию/корекурсию (примитивную и структурную)

все эти someFnM делают тоже что и someFn только с монадным эффектом

но! дают в некотором случае прикольные вещи

permutations' = sortByM (\_ _ -> [False, True]) subsequences' = filterM' (const [False, True]) inits' = takeWhileM' (const [False, True]) tails' = dropWhileM' (const [False, True])

и да) все эти 4 функции легко написать через do и обычное определение этих функций (но я пошел путем через recursion-schemes через cata,para,cataM,paraM)

andretshurotshka?❄️кде
22.05.2017
09:17:39
вроде ты уже был тут)

? animufag ?
22.05.2017
09:54:59
хех) я был тут минуты две. меня забанили за спам.

Kirill
22.05.2017
09:56:40
Что лучше для фронтэндера учить Хаскелль или Кложу?

Vladimir
22.05.2017
09:57:15
кложу я думаю

Denis
22.05.2017
10:46:24
Пурсу и ельмню ну может окамльню)

Kirill
22.05.2017
10:48:11
А есть смысл именно Хаскелль сначала учить, а не Пурсу?

Denis
22.05.2017
10:48:40
Можешь параллельно

Дмитрий
22.05.2017
11:52:43
Purescript — путь для сильных духом

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

Половина pursuit перманентно сломана

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