@frp_ru

Страница 129 из 420
kana
04.08.2017
13:46:50
Дальше вот: const f = curry((a, b, c, d) => [a, b, c, d]); o(o, o)(flip)(f)(1)(2)(4)(3);

Denis
04.08.2017
13:50:32
const flipper = o(flip) const f = curry((a, b, c, d) => [a, b, c, d]) flipper(f)(1)(2)(4)(3)

Google
Vadim
04.08.2017
13:53:56
Спасибо всем! Интересно!

Но что если мне нужно флипнуть например третий и четвертый аргумент? Я ищу универсальное решение

kana
04.08.2017
14:20:59
вот это флипает 3 и 4 аргумент

Дальше вот: const f = curry((a, b, c, d) => [a, b, c, d]); o(o, o)(flip)(f)(1)(2)(4)(3);

Но что если мне нужно флипнуть например третий и четвертый аргумент? Я ищу универсальное решение

o(o)(o) пропускает первые два аргумента и флипает 3 и 4

o(o, o(o, o)) пропускает 3 аргумента, o(o(o, o), o(o, o)) 4

Vadim
04.08.2017
14:22:12
Ух! ) Спасибо!

Конечно не очень читаемо, но ладно )

Denis
04.08.2017
14:30:33
такое не сработает
Я же проверил

Конечно не очень читаемо, но ладно )
Возьми и просто заюзай nthArg или как его там

kana
04.08.2017
14:31:38


Google
kana
04.08.2017
14:31:40
как-то ты странно проверил) твой код меняет 2 и 3

Denis
04.08.2017
14:32:31
Там тоже 2 и 3 местами перепрыгнули

kana
04.08.2017
14:33:09
Конечно можно предположить, что ты отвечал на первую задачу, но а) на нее уже был дан точно такой же ответ б) в его условии было 3 аргумента

Vadim
04.08.2017
14:33:41
Если вкратце, то я думаю над самой короткой возможной реализацией этого: // flipArgs(firstIdx, secondIdx, fn) const fn = curry((a, b, c, d) => a + b + c + d); flipArgs(2, 3, fn)('a', 'b', 'c', 'd') //-> ‘abdc’

kana
04.08.2017
14:34:40
ну можно просто принять аргументы в массив

поменять местами, вызвать с массивом

? animufag ?
04.08.2017
14:35:23
Наверное проще не пользоваться о и flip

kana
04.08.2017
14:36:02
+, проще и читаемее обернуть в лямду

Vadim
04.08.2017
14:36:37
+, проще и читаемее обернуть в лямду
Наверное да. Просто я думал, вдруг я просто пока рамду недостаточно знаю, и это все можно реализовать коротким поинт-фри однострочником? )

kana
04.08.2017
14:36:47
в кложе было бы красиво - #(fn %1 %3 %2 %4)

Denis
04.08.2017
14:37:05
Варарги от лукавого

Vadim
04.08.2017
20:55:58
Не найдя короткого универсального способа для описанной сегодняшней задачки с реверсом указанного диапазона аргументов, пришел в итоге к этому ) const argsToArray = unapply(identity); const takeArgs = curryN(2, compose( apply(take), splitAt(1), argsToArray )); const sliceByCount = converge(slice, [identity, add, nthArg(2)]) const reverseElems = converge(insertAll, [ identity, compose(reverse, sliceByCount), remove ]); const reverseArgs = converge(compose, [ compose(apply, nthArg(2)), compose(apply(reverseElems), takeArgs(2)), always(argsToArray) ]) const fn = (a, b, c, d, e) => a + b + c + d + e; const reversed = reverseArgs(1, 3, fn); reversed('a', 'b', 'c', 'd', 'e') //-> “adcbe"

Denis
04.08.2017
21:03:44
откровенно какой-то ...

Vadim
04.08.2017
21:05:33
Короче в поинт-фри вряд ли сделаешь )

Denis
04.08.2017
21:05:56
c varargs вообще мало что сделаешь

Vadim
04.08.2017
21:06:30
Что такое вообще "варарги" про которые ты второй раз упоминаешь?

А, нашел ) "аргументы переменной длины" )

Denis
04.08.2017
21:09:52
Google
Vadim
04.08.2017
21:10:48
Что он сказал конкретно по теме обсуждения?

Denis
04.08.2017
21:11:35
Что он сказал конкретно по теме обсуждения?
это создатель комбинаторной логики) (первый открыл карринг) все что больше арности 1 то от лукавого

Vadim
04.08.2017
21:14:43
Если все вышеприведенное реализовать с арностью 1, то получится намного более "многословно"

Denis
04.08.2017
21:15:06
ну вроде в птицах комбинатрных такое есть?

Vadim
04.08.2017
21:15:59
В принципе наверное. Ими можно играться.

andretshurotshka?❄️кде
06.08.2017
21:21:21
?

омг, тайлор делает какую-то дичь

Paruyr
07.08.2017
10:50:28
Народ, вопросец. Кто-нибудь в браузере гонял Haskell (GHCjs) + React? Ну или другой язык со схожим синтаксисом (Idris, PureScript, Elm)

? animufag ?
07.08.2017
10:52:46
У пурскрипта больше всего шансов

andretshurotshka?❄️кде
07.08.2017
11:11:22
pux?

Paruyr
07.08.2017
11:15:53
Забыл добавить. Надо JSX

Denis
07.08.2017
11:16:12
нафига он в хаскелл?

andretshurotshka?❄️кде
07.08.2017
11:19:09
hsx

лол

Denis
07.08.2017
11:19:25
что это еще за херня?

andretshurotshka?❄️кде
07.08.2017
11:19:55
Блин такое существует

Ilya
07.08.2017
11:20:08
Чтобы делать ХМЛ пока ты в хаскеле.

Всегда мечтал.

Denis
07.08.2017
11:20:37
ну на оксфордских скобках все можно сделать

andretshurotshka?❄️кде
07.08.2017
11:22:47
Google
Admin
ERROR: S client not available

Denis
07.08.2017
11:25:59
Эт что?
квазиквоты

andretshurotshka?❄️кде
07.08.2017
11:26:28
А

? animufag ?
07.08.2017
11:26:49
А
Пояснить?

andretshurotshka?❄️кде
07.08.2017
11:28:59
Да это гуглится хоть

Aleh
07.08.2017
11:29:15
))))

? animufag ?
07.08.2017
11:31:33
оксфордские какое-то мудренное название



Aleh
07.08.2017
11:33:12
)))))))))

https://habrahabr.ru/company/enterra/blog/224229/

Denis
07.08.2017
11:33:54
https://wiki.haskell.org/Quasiquotation

andretshurotshka?❄️кде
07.08.2017
11:37:04
лол

Дмитрий
07.08.2017
11:38:42
Алексей
07.08.2017
11:40:49
Ребят напомните - у нас скидывали репозиторий в котором перечислялись термини из FP которые было бы полезно понимать (не могу найти ссылку, может есть у кого)

Denis
07.08.2017
11:41:34
если ты про это, то тут не всему стоит верить https://github.com/hemanth/functional-programming-jargon

Алексей
07.08.2017
11:42:49
Да оно - tnx.

? animufag ?
07.08.2017
11:44:07
макросы как-то не очень зависят от фп/ооп. вообще они везде кроме лиспов неуместны, да и то не уверен, что практикующие на кложе пишут макросы

Алексей
07.08.2017
11:47:05
Google
? animufag ?
07.08.2017
11:49:40
ну сериализация/десериализация ок. описание апи ок. возможно проп-тесты ок. едсл, язык общения с бд и прочее умное/хитрое не ок

illiatshurotshka❄️
07.08.2017
11:50:41
почему?

? animufag ?
07.08.2017
11:51:01
еще как пишут
мб какие-нибудь примеры удобных штук из либ? а то извне сложно соориентироваться

Nikita
07.08.2017
11:51:25
в core куча полезных макросов показать?

illiatshurotshka❄️
07.08.2017
11:51:32
https://github.com/pest-parser/pest/blob/master/README.md

мне нравится как там используют

? animufag ?
07.08.2017
11:52:09
почему?
сложная диагностика ошибок. когда у тебя построен язык на макросах обычно красиво смотреть примеры успеха. ошибки реже обрабатываются

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