модифицирует каждый элемент и возвращает новый массив
Что делает метод map, если рассматривать его более детально? Он берет переданную ему в качестве аргумента функцию трансформации и применяет её для каждого элемента массива
модифицирует каждый элемент и возвращает новый массив
Грубо говоря этот метод знает как трансформировать каждый из элементов коллекции и при этом сохранить структуру, то есть вернуть обратно именно массив, а не какое-то значение другого типа. Это позволяет организовывать цепочку вычислений для массива.
Массив это своего рода контейнер, в котором хранятся значения. У нас может быть и контейнер, в котором хранится только одно какое-то значение, не обязательно контейнер должен быть массивом. Но я привожу в качестве примера именно массивы потому что вам так будет проще понять практическое применение функторов и эндофункторов
Массив это своего рода контейнер, в котором хранятся значения. У нас может быть и контейнер, в котором хранится только одно какое-то значение, не обязательно контейнер должен быть массивом. Но я привожу в качестве примера именно массивы потому что вам так будет проще понять практическое применение функторов и эндофункторов
Че за контейнер? Есть ведь какие-то компьютер саенс наименования связанные списки, хэш-таблицы
О функторе можно думать как о некоторой ФУНКЦИИ, которая знает как корректно провести преобразование над некоторой СТРУКТУРОЙ данных, соответственно. Преобразование в данном случае это коллбэк-функция, передаваемая функтору в качестве аргумента. Функтор распаковывает полученную структуру, достает хранящееся в ней значение, применяет функцию-преобразование к этому значению, получает новое значение и кладет это значение обратно в структуру, которую возвращает
Представим на минуточку, что map возвращал бы, к примеру, не массив, а объект на выходе. В таком случае метод map нельзя было бы назвать эндофунктором, так как внутренняя структура потеряна, массив превратился в объект.