Побочные эффекты

Вы скорее всего уже заметили (может, подсознательно), что print_r — это тоже функция. Она принимает на вход данные любого типа и выводит их на экран.

Внимание, вопрос: что возвращает функция print_r? Ответ: что бы она не возвращала, это значение никак не используется.

print_r выводит что-то на экран, но это не возврат значения, это просто какое-то действие, которое выполняет функция.

Вывод на экран и возврат значения из функции — разные и независимые операции. Технически вывод на экран равносилен записи в файл (немного особый, но все таки файл). Для понимания этой темы необходимо немного разобраться в устройстве операционных систем, что крайне важно для программистов.

С точки зрения программы вывод на экран — это так называемый побочный эффект. Побочным эффектом называют действия, которые изменяют внешнее окружение (среду выполнения). К таким действиям относятся любые сетевые взаимодействия, взаимодействие с файловой системой (чтение и запись файлов), вывод информации на экран или печать на принтере и так далее. Понимание принципов работы с побочными эффектами очень сильно влияет на стиль программирования и способность строить качественные программы. Эта тема полностью раскроется в курсах на Хекслете.

Побочные эффекты — один из основных источников проблем и ошибок в программных системах. Код с побочными эффектами сложен в тестировании, ненадежен. При этом без побочных эффектов программирование не имеет смысла. Без них было бы невозможно получить результат работы программы (записать в базу, вывести на экран, отправить по сети и так далее).

Задание

Это задание не связано напрямую с уроком. Но выполнить его без создания переменных — важный шаг в вашем профессиональном развитии.

Выведите на экран имя матери Дайнерис Таргариен (Daenerys Targaryen), используя функцию parentFor без создания переменных.

Напомним, что parentFor возвращает имя родителя если передать ему первым параметром имя ребенка. Вторым параметром функция принимает строчку father или mother. Так функция понимает, кого из родителей возвращать. По умолчанию параметр равен mother.


Советы
Определения
  • Побочный эффект — действие, которое изменяет внешнее окружение (среду выполнения). Например, вывод на экран или отправка письма.

Exercise available only for signed users