Oleg
Поверю на слово
Дима
Поверю на слово
Трансдюсер — это когда из последовательности мапов и редьюсов (а так же большого числа производных задач) делается ряд однопроходных вычислений
Oleg
...то есть по сути редусер
Oleg
Если один он
Дима
Дима
Это абстракция над ним
Oleg
😄
Oleg
Вот!
Дима
Приводяющая всё к одному виду. Это НЕ редюсер
Oleg
По этому и разговор про это
Дима
Хотя и очень близок к нему
Дима
То есть мы выкидываем все промежуточные массивы и каждый элемент последовательно превращается из начального состояния сразу в конечное
Дима
Смотря в какой реализации
Дима
Целикового кода никто больше не предоставил))
Дима
На выходе должна быть строка
Дима
Потому что у меня строка))
파쇼크
Мм, вот бы щас в редьюсе мутировать элементы а потом их же возвращать
Дима
Кстати интересный вопрос, учитывая то, что нативные map/reduce не являются самой быстрой реализацией из возможных на жс
파쇼크
а блять редьюс же
파쇼크
сори
Oleg
Но если расширить прототип массива, добавив ему инкрементер указанного значения с возвратом самого себя назад - можно и без разделения на 2 части
Viacheslav
вообще супер. прям спасибо
Дима
Oleg
Но если пишешь код для себя - то нельзя
Oleg
А вообще это были филосовские размышления :D
Oleg
А вообще это были филосовские размышления :D
Anonymous
Простите, может быть, за глупый вопрос. Ramda - это функциональный (синтаксически) lodash или там еще что?
Roman
ну в целом да
Roman
но там естьеще ramda-fantasy с монадами
Anonymous
А какие профиты? нужно ли это в обычной жизни (сложная бизнесс логика с фильтрами)? Какие кейсы у меня должны быть, что бы я задумался о переходе на нее?
Дима
Дима
Нету больше ramda-fantasy
Kirill
можно открыть fantasy-land и понять свою никчемность
Дима
Да они нерды просто. Я уже использовал метафору про мычание сегодня, но к монадам это относится гораздо больше
Roman
Дима
Functor — коробка с объектом, которая имеет метод .map, такой же как в массиве
Дима
Ну и так далее
Anonymous
import {
groupBy,
pipe,
prop,
map,
length,
toPairs,
join,
} from 'ramda'
const transform = pipe(
groupBy(prop('order')),
map(length),
toPairs,
map(([id, result]) => `'order${id}': ${result}`),
join(', ')
)
const result = transform(arr)
Ты про это?
Нуу...
Anonymous
Но твое решение быстрее? Или я упустил что-то
Дима
При желании, да
Дима
Сейчас просто сравнивать не с чем, больше решений нет, лол
Kirill
оно лаконичней но нужно знать что делают все эти функции, можно решить средствами языка но будет более многословно прост
Дима
Кэп)
Roman
и медленне скорее всего, чего уж там
Kirill
я к тому что для 95% второй вар будет читабельней
Anonymous
Kirill
хех это заразно походу
Kirill
ну тут уж сам определяешь грань между библиотека облегчает жизнь и излишним нагромождением левого кода
Дима
Ну и когда всё подчинено общей идее как то меньше о всяких мелочах задумываешься.
На следующем левел апе можно не проверять значения на null например, если есть вероятность что такие могут быть
Дима
Kirill
ну это уже профиты фя типа одинаковых интерфейсах и т д
Дима
Нет
Дима
(я конкретно про null), просто это всё так работате
Roman
эпидемия
Kirill
луддизм - новый день - новое слово 🙌
Дима
эпидемия
Где? Я про рамду задвигал когда в группе ещё тысячи человек не было)
Kirill
Дима
jsperf.com/native-map-vs-handmade/1
Вот я недавно делал
Дима
С map там вообще разрыв раза в два получается
Serhiy
Евгения
Привет! Есть #вакансия в Питере Web-разработчика.
Требования:
• Уверенное владение python/javascript (2.7+/3+).
• Знакомство с NoSQL.
• Опыт работы с системами контроля версий: git/mercurial.
• Linux/MacOS в качестве основной ОС.
• Знание современных js-фреймворков с пониманием их архитектуры.
О задачах:
Задачи будут по большей части по фронтэнду. Сейчас мы находимся в фазе перехода от устаревшего монолитного приложения к микросервисной архитектуре. Работа будет над системой электронного документооборота (АТИ-Доки), мессенджером (АТИ-мессенджер), информационным изданием (АТИ-Медиа) и впереди еще много интеграционных проектов.
Разработка ведется в автоматизированной и покрытой тестами инфраструктуре.
Предлагаем:
Зарплата до 150 т.р. нетт, гибкий график, ДМС, компенсация спорта, языковых курсов, бесплатные обеды, оплата профессиональных конференций и семинаров; офис в БЦ класса А.
e-mail: evgeniya.k@ati.su
Serhiy
Чего они такого на нативном уровне делают что JS имплементация работает быстрее
Serhiy
*сорцы читать лень*
Kirill
-
Anonymous
Кастом медленнее. Или я не так как-то читаю?
Anonymous
А, понял
Suicide Liza
Array.prototype.forEach.call >
[].forEach.call >
map
Serhiy
Дима
Да, я только что апдейтнул с forEach на map)
Дима
CherryTea
Serhiy
Дима
https://jsperf.com/native-map-vs-handmade/3