Материал предоставлен http://it.rfet.ru

“функции высшего порядка”

5 лет назад

не могу решить тест “функции высшего порядка” Найдите функции с побочными эффектами. Объяснения по курсу минимальные..... .

5 лет назад

Добрый день.

Вопрос, на который вы не можете ответить можно объяснить очень просто:

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

Функции БЕЗ ПОБОЧНЫХ ЭФФЕКТОВ, вызванные дважды, не изменяют среду исполнения, даже если возвращают разный результат. Если вызвать функцию с побочным эффектом дважды с одним и тем же набором значений входных аргументов, может случиться так, что в качестве результата будут возвращены разные значения.

Обратите вниманиние на выделенные “может”. Это вовсе не обязательно случиться, но МОЖЕТ случиться. Например, вы вызываете метод, который добавляет элемент в список. Допустим, вызов этого метода добавляет вам денег на лицевой счёт.

Вызываете его первый раз, и у вас становится на 10 тыс. руб. больше. Метод возвращает вам ответ: ОК!

Вызываете второй — и у вас уже 20 . тыс. руб. И снова ответ: ОК! Вы вызываете его так 10 раз и ответ всегда ОК!. Это классическая функция с побочным эффектом. Потому что у вас до этого не было 120 00 рублей на лицевом счету, а сейчас стало. Побочный эффект налицо. К вам уже выехали.

А теперь представим себе метод БЕЗ побочного эффекта. Вы вызываете функцию для того, чтобы узнать: сколько будет 10 тыс. руб. в USD СЕГОДНЯ. Вызывая её 20 раз вы каждый раз вроде как получаете разный результат, но побочного эффекта нет — ничего за пределами функции нигде не изменяется.

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


Изучайте. Всё у вас получится. Вы там только в одном ответе ошибаетесь. Сядьте и хорошенько подумайте.

С уважением,

Станислав Евгеньевич

5 лет назад

Спасибо за ответ “понятно что ничего не понятно “ как и весь курс по языку JavaScript.замечательная просто подача учебного материала.

5 лет назад

Добрый день.

Вы должны обучиться JS, а не полюбить простоту. Для этого вам следует провести немного собственных исследований, разобраться, попробовать, поэкспериментировать.

Я посмотрел на ваши результаты и понял, что вы просто подбираете ответы. Включайтесь в работу серьёзнее. Всё у вас получится.

С уважением,

Станислав Евгеньевич

Ваш комментарий

Комментирование доступно только для авторизованных пользователей.