Скрыть объявление
Гость отличная новость! Мы открыли доступ к ранее скрытому контенту.

Вам доступно более 44 000 видео уроков, книг и программ без VIP статуса. Более подробно ЗДЕСЬ.

чистота

Чистота́ (в отношении языка программирования) — отсутствие побочных эффектов. Язык программирования является чистым в том случае, если все функции в программах этого языка являются чистыми.
Программы, написанные на чистых языках программирования, проще отлаживать, верифицировать, в них проще обнаруживать ошибки, которые не удалось обнаружить с помощью тестирования. Программы на чистом языке программирования проще переписывать, избегая внесения ошибок. В то же время, сам процесс планирования программы с расчётом на чистоту сложнее.
Ещё одним важным преимуществом чистых функциональных языков является параллелизм. Поскольку все функции для вычислений используют только свои параметры, можно организовать вычисление независимых функций в произвольном порядке или параллельно, на результат вычислений это не повлияет. Параллелизм может быть организован не только на уровне компилятора языка, но и на уровне архитектуры технических средств. Существуют экспериментальные компьютеры, основанные на подобных архитектурах, например Lisp-машина.
Чистые функциональные языки временами называют «детерминированными» в том смысле, что для всякой функции каждый вызов всегда даёт один и тот же эффект (в императивных языках это, вообще говоря, не верно). В то же время, такие языки называют «недетерминированными» в том смысле, что порядок действительного исполнения программы может сильно меняться в зависимости от конкретной реализации языка: алгоритмы могут неявно распараллеливаться, промежуточные данные могут исключаться из цепочки преобразований, представление одних и тех же типов может варьироваться даже в рамках одной программы, и т. д. (для императивных языков это попросту невозможно). Проще говоря, чистые языки детерминированы на уровне исходных кодов и недетерминированы на уровне реализации (императивные — наоборот).

Узнать больше на Wikipedia.org