Я не согласен с @Carcigenicate.Функция f
является чистой, если выражение f(x)
является ссылочно-прозрачным для каждого ссылочно-прозрачного выражения x
.Это означает, что вы можете заменить f(x)
на некоторое ЗНАЧЕНИЕ, и наблюдаемое поведение программы не изменится.Это не относится к console.log
.
Это отличается от, скажем, в Haskell, где IO
является истинным значением, а не побочным эффектом.