Вот пример:
Это чистая функция: она всегда будет возвращать один и тот же вывод для одного и того же ввода
const even = x => x % 2 === 0;
И давайте создадим isTenEven()
, который будет проверять, не влажнее ли 10
- четное число или нет:
const isTenEven = () => even(10);
Поскольку мы гарантируем, что even(10) === true
будет всегда истинным, мы можем действительно заменить вызов функции значением:
const isTenEven = () => true;
А ваша программа все равно будет работать. ™
Однако вы не сможете этого сделать, если even
не будет чистым!
Вот глупый пример: раз в месяц 10
больше не будет четным числом:
const even = x => (new Date()).getDate() === 15 ? false : x % 2 === 0;
Возможно, ваша программа за исключением isTenEven()
возвращает либо true
или false
, поэтому всегда предполагать, что он вернется true
может привести к неожиданным последствиям.
Конечно, в данном конкретном случае я не уверен, какими будут эти последствия, но вы никогда не знаете. .. в том-то и дело.