@frp_ru

Страница 70 из 420
Yumi
30.05.2017
18:15:00
ага, его книга классная (жаль что в 8 много чего уже не так)
А конкретнее можно? Хотелось бы разобраться.

Denis
30.05.2017
18:17:56
ну например Functor -> Applicative -> Monad

Vadim
01.06.2017
12:39:33
Некоторое время назад я задавал тут вопросы по методу рамды "chain", долго пытаясь понять его суть. И хотя тогда благодаря ответам тут я ее уяснил, но сейчас мне попалась статья где сей метод описывается вообще наглядно и "на пальцах" ) http://buzzdecafe.github.io/2016/12/29/chain-chain-chain Это я на всякий случай, вдруг кому понадобится ) Но вообще там и другие статьи тоже толковые.

Дмитрий
01.06.2017
12:43:13
Ну дык

Google
Дмитрий
01.06.2017
12:43:17
Это автор рамды

Vadim
01.06.2017
15:05:46
Кстати, рамда, судя по их кукбуку https://github.com/ramda/ramda/wiki/Cookbook пропагандирует строго "функциональный подход" на счет того что б не сохранять в константах промежуточные данные. Во всех примерах они оперируют ТОЛЬКО ФУНКЦИЯМИ. Это, на мой взгляд, уменьшает читабельность кода (хотя может я это говорю с непривычки). Есть ли преимущество у такого подхода? Я полюбил рамду из-за возможностей разного рода пайпов/компосов и прочего. Но в своем коде я обычно по преждему использовал константы с промежуточными значениями. А есть ли преимущества от отказа от сохранения промежуточных значений, и манипулирования только лишь функциями?

Vadim
01.06.2017
15:28:49
Ну конкретно композ - это частный случай ) Я вообще о том, есть ли преимущество от использования в качестве констант ТОЛЬКО функций?

? animufag ?
01.06.2017
15:30:24
преймущество в том что в джс сложно предсказать где сейчас закрался стейт. где вдруг используется this. и когда читаешь код фп фанбоя то наверное как-то поувереннее себя чувствуешь, в том плане что тебе нужно только документацию для функции почитать и никаких перегрузок не будет (хотя хз как там отношение фп к полиморфизму над объектом, наверняка не брезгуют)

да думаю недостатков больше - у всех фп в голове разное. уходит время на координацию тимы. ну и слишком легко увлечься и накидать комбинаторов ради комбинаторов

Vadim
01.06.2017
15:44:30
А я не про переменные говорил, а про константы ) А мутаций ты и в пайпах наделать можешь

Vadim
01.06.2017
15:45:51
Ну так или иначе, функциональный подход (через рамда) не защищает от мутаций

Google
Vladimir
01.06.2017
15:46:06
это джаваскрипт

конечно, ты можешь стрелять себе в ногу

и в голову тоже

но без переменных что ты в пайпе мутировать будешь?

Vadim
01.06.2017
15:47:30
конечно, ты можешь стрелять себе в ногу
Вот потому я и спрашиваю, есть ли в js преимущества от использования ТОЛЬКО ЛИШЬ функций в качестве промежуточных значений?

Vladimir
01.06.2017
15:47:39
я и говорю

Vadim
01.06.2017
15:47:40
Рамда поддерживает мутации

Vladimir
01.06.2017
15:47:52
без перменных ты не можешь их мутировать

ты копируешь и передаешь след функции

можно сделать сайдэффект, но так не надо делать

Vadim
01.06.2017
15:48:34
ты копируешь и передаешь след функции
Но операции над объектом в рамде бывают и мутабельными

Vladimir
01.06.2017
15:49:19
бывают

Vadim
01.06.2017
15:51:48
Тогда я не вижу преимуществ манипулирования одними лишь функциями в качестве промежуточных значений

Это не дает никакой защиты

? animufag ?
01.06.2017
15:52:24
ща мб для кого-нибудь срыв покровов будет

http://ideone.com/VtEkwK

Дмитрий
01.06.2017
16:41:12
Кстати, рамда, судя по их кукбуку https://github.com/ramda/ramda/wiki/Cookbook пропагандирует строго "функциональный подход" на счет того что б не сохранять в константах промежуточные данные. Во всех примерах они оперируют ТОЛЬКО ФУНКЦИЯМИ. Это, на мой взгляд, уменьшает читабельность кода (хотя может я это говорю с непривычки). Есть ли преимущество у такого подхода? Я полюбил рамду из-за возможностей разного рода пайпов/компосов и прочего. Но в своем коде я обычно по преждему использовал константы с промежуточными значениями. А есть ли преимущества от отказа от сохранения промежуточных значений, и манипулирования только лишь функциями?
Отказ от переменных ради отказа от переменных не нужен, если проще написать с ними — пиши, это ок) Стиль рамды позволяет абстрагироваться от конкретных объектов и описывать операции в общем виде, в универсальной и краткой форме

Большую часть времени в обычном жс рамда выступает в качестве эффективного средства для функций - однострочников) Никаких упоротых «композ через композ», просто какие - то атомарные операции в три-четыре последовательных действия

Потом начинаешь замечать, что всё большая и большая часть задач оказывается атомарной да и вообще повторяется

Google
Дмитрий
01.06.2017
16:49:36
А попытаться сразу писать point-free-everything — это прямой путь к fp fatigue, сколько раз уже наблюдал подобное ?

andretshurotshka?❄️кде
02.06.2017
08:18:28
?

Denis
02.06.2017
12:06:15
я часто пишу с с лямбдами а потом просто смотрю к чему можно применить PF

Vasiliy
02.06.2017
12:34:49
† Prepodobnyy †
03.06.2017
13:25:48
доброго дня ( вечера) уважаемые пользователи

Nikita
03.06.2017
13:40:55
привет

Kirill
03.06.2017
18:06:51


В первом конде, правда, ошибся и забыл вытащить val в первом действии.

Дмитрий
03.06.2017
20:45:36
Сойдёт) Вместо () => true в рамде есть T, а вместо проверки в первом cond есть propEq

Kirill
03.06.2017
20:48:24
Сойдёт) Вместо () => true в рамде есть T, а вместо проверки в первом cond есть propEq
А то что 2-ой cond не чистый, не является антипаттерном?

Дмитрий
03.06.2017
20:49:24
Если честно, то я бы вообще назвал использование cond с одной провкеркой антипаттерном ?

Kirill
03.06.2017
21:07:13
Это очень утрированный пример. Главный вопрос в том, нормально ли замыкать переменные извне или лучше делать хэндлеры в cond чистыми?

Дмитрий
03.06.2017
21:14:16
От функции объявленной через cond будет ожидаться, что она будет чистой Тогда, например, она будет располагаться в корне модуля

andretshurotshka?❄️кде
04.06.2017
08:30:05
йо йо

павлуха
04.06.2017
09:37:53
хаюшки. Ребятки, кто хочет подкалымить, немного поковыряв код на джавке, го в личку

Aleh
04.06.2017
09:58:32
лооол

это троллинг?

павлуха
04.06.2017
10:11:42
не, у меня немного времени не хватает

? animufag ?
04.06.2017
10:13:11
в джава-конфе забанили?

Aleh
04.06.2017
10:23:24
еще в чатик реакта скинь вакансию по ангуляру)

Google
andretshurotshka?❄️кде
04.06.2017
10:24:14
ээ

может у него RxJava

Aleh
04.06.2017
10:24:49
ага, может у них там редакс и фетч без rx

Yumi
04.06.2017
12:59:28
Вот эволюция и до жавы дошла, мой друг уже не пишет циклы в методах и все, через map и reduce.

Только зачем там фп - непонятно.

Есть же няшная Скала.

? animufag ?
04.06.2017
13:01:42
Admin
ERROR: S client not available

? animufag ?
04.06.2017
13:01:57
Есть же няшная Скала.
Не все могут сменить язык

Yumi
04.06.2017
13:03:52
А где фп уместно?
Не в языках, где все заточено под ООП.

Aleh
04.06.2017
13:04:08
да в жаве особо под ооп не заточено(

Yumi
04.06.2017
13:05:04
Тогда надо добавлять в описание группы и жаву, лол.

? animufag ?
04.06.2017
13:08:33
Yumi
04.06.2017
13:10:16
Нет, там библиотеки.

? animufag ?
04.06.2017
13:10:20
Ну и так то в джаву лямбды запилиЛИ и всё можно говорить что фп. Ну не меньше фп чем лисп

Yumi
04.06.2017
13:15:22
Вообще немного напрягает, что нет чистого ООП языка, когда чистый ФП есть. ?

? animufag ?
04.06.2017
13:16:37
Ну его всегда приводят в пример. Да и язык он вполне интересный. Правда ещё уместна мысль что классы лишняя сущность при описании объектов. Тут не знаю какой язык привести в пример

Aleh
04.06.2017
13:19:05
js )

andretshurotshka?❄️кде
04.06.2017
13:21:19
Google
Yumi
04.06.2017
13:23:21
js )
Примитивы есть же, которые не объект.

Или это некритично?

? animufag ?
04.06.2017
13:29:41
некритично. красиво когда они объекты, но в целом на решение твоих проблем это не скажется

Yumi
04.06.2017
13:31:27
https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html - лямда в жаве кстати уже есть.

? animufag ?
04.06.2017
13:31:28
js )
так до сих пор и не вник в прототипы. чувство, что не много потерял и что все на них кладут.

Yumi
04.06.2017
13:33:12
так до сих пор и не вник в прототипы. чувство, что не много потерял и что все на них кладут.
Это наверное критически важно для понимания механизма языка, а на практике редко встречается.

Дмитрий
04.06.2017
17:27:57
Я сейчас реализовал две штуки — callable classes (классы, у которых инстанс — функция) и классы, чьи инстансы создаются без new, короче пришлось вникнуть в прототипы

Могу заверить что без них ваще ничего не теряете))

Нудно и кроме таких эдж кейсов уже не особо полезно

Kirill
05.06.2017
06:27:22
Сойдёт) Вместо () => true в рамде есть T, а вместо проверки в первом cond есть propEq
А если хочу проверить вот так: propEq('prop', true), есть более короткий аналог, но чтобы именно true, false проверить?

Vladimir
05.06.2017
07:43:58
propIs(_, Boolean)
ну это на тип проверка

а не на true

Дмитрий
05.06.2017
07:45:00
А, ну да, не так прочитал)

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

Если это конечно оправдано)) Потому что проверка на true false самая короткая по записи в жс

Там кстати новая версия рамды вышла, если кто не видел)

Добавили mergeDeep* в разных вариациях, startsWith, innerJoin и убойный o

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