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 и понять свою никчемность
Дима
Да они нерды просто. Я уже использовал метафору про мычание сегодня, но к монадам это относится гораздо больше
Дима
Functor — коробка с объектом, которая имеет метод .map, такой же как в массиве
Дима
Ну и так далее
Дима
чей-то нету
issues открой
Anonymous
Но твое решение быстрее? Или я упустил что-то
Дима
При желании, да
Дима
Сейчас просто сравнивать не с чем, больше решений нет, лол
Kirill
оно лаконичней но нужно знать что делают все эти функции, можно решить средствами языка но будет более многословно прост
Дима
Кэп)
Roman
и медленне скорее всего, чего уж там
Kirill
я к тому что для 95% второй вар будет читабельней
Дима
и медленне скорее всего, чего уж там
Нативный map — не самый быстрый в жс 😉
Anonymous
Нативный map — не самый быстрый в жс 😉
Есть что почитать на этот счет?
Kirill
хех это заразно походу
Дима
я к тому что для 95% второй вар будет читабельней
Это их проблемы, с такой формулировкой можно отсеять вообще всё, вот буквально каждую либу
Kirill
ну тут уж сам определяешь грань между библиотека облегчает жизнь и излишним нагромождением левого кода
Дима
Ну и когда всё подчинено общей идее как то меньше о всяких мелочах задумываешься. На следующем левел апе можно не проверять значения на null например, если есть вероятность что такие могут быть
Дима
ну тут уж сам определяешь грань между библиотека облегчает жизнь и излишним нагромождением левого кода
Излишнее нагромождение левого кода — это когда луддизм побеждает нормальные подходы)
Kirill
ну это уже профиты фя типа одинаковых интерфейсах и т д
Дима
Нет
Дима
(я конкретно про null), просто это всё так работате
Roman
эпидемия
Kirill
луддизм - новый день - новое слово 🙌
Дима
эпидемия
Где? Я про рамду задвигал когда в группе ещё тысячи человек не было)
Дима
Есть что почитать на этот счет?
Нативный map должен проверять значение в массиве на присутствие
Дима
jsperf.com/native-map-vs-handmade/1 Вот я недавно делал
Дима
С map там вообще разрыв раза в два получается
Serhiy
С map там вообще разрыв раза в два получается
Я вот кстати так и не понял почему
Евгения
Привет! Есть #вакансия в Питере 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)
Дима
У меня так вышло
Дима
Чего они такого на нативном уровне делают что JS имплементация работает быстрее
При каждом новом элементе проверяют, не null ли он, если нет — то делают push в массив результатов
CherryTea
Дима
https://jsperf.com/native-map-vs-handmade/3
Дима
А это разве православная реалиция мап?
В моём описании — да, именно так она и работает