Обычно функции, обладающие побочными эффектами, не являются
детерминированными, поэтому функции без побочных эффектов,
детерминированные функции и чистые функции иногда путают. В действительности
это разные свойства функций. Например, функция rand, которая возвращает
случайное число, или гипотетическая функция GetGlobalVarX, которая
возвращает значение глобальной переменной X (и больше ничего не делает), не
являются детерминированными, хотя они и не обладают побочными эффектами. А
вот гипотетическая функция print, выводящая текст на экран и всегда
возвращающая 0, наоборот — является детерминированной, но обладает побочным
эффектом (вывод текста на экран). Ни одна из них не является чистой.