Чтобы ответить на ваш первый вопрос, математические функции часто описываются как «чистые» с точки зрения некоторых указанных переменных. например.:
первый член является чистой функцией x, а второй член является чистой функцией y
Из-за этого я не думаю, что вы найдете истинное «первое» появление.
Для языков программирования небольшой поиск показывает, что Ada 95 (pragma Pure
), < a href="http://www.vcpc.univie.ac.at/information/mirror/HPFF/hpf1/hpf-v10/subsubsection2REDUCIBLE
3pragma Pure
1.html">Высокопроизводительный Фортран (1993) (PURE
) и VHDL-93 (pure
) содержат формальные понятия "чистых функций".
Haskell (1990) довольно очевиден, но чистота не является явной. C GCC имеет различные атрибуты функций для различных уровней "чистоты".
Несколько книг: Обоснование языка программирования C (1990) использует этот термин, как и Языки программирования и их определения (1984). Однако оба, по-видимому, используют его только один раз! Этот термин используется в Programming the IBM Personal Computer, Pascal (также 1984 г.), но из ограниченного представления Google неясно, поддерживал ли его компилятор Pascal. (Подозреваю, что нет.)
Интересно отметить, что у Грина, предшественницы Ады, на самом деле была довольно строгая «функция». определение - запрещено даже выделение памяти. Однако от этого отказались до того, как он стал Адой, где функции могут иметь побочные эффекты (ввод-вывод или глобальные переменные), но не могут изменять свои аргументы.
C28-6571-3 ( первое справочное руководство по PL/I, написанное до компилятора) показывает, что PL/I поддерживал чистые функции в виде атрибута REDUCIBLE
(= чистый) еще в 1966 году, когда компилятор был впервые выпущен. (Это также отвечает на ваш третий вопрос.)
В этом последнем документе особо отмечается, что он включает REDUCIBLE
в качестве нового изменения по сравнению с документом C28-6571-2. Итак, REDUCIBLE
, который, возможно, является первым воплощением формальных чистых функций в языках программирования, появился где-то между январем и июлем 1966 года.
Обновление: самый ранний пример «чистой функции» в группах Google в этом смысле выпущен в 1988 году, что означает, что ссылки на книги датируются более поздними датами.
person
porges
schedule
13.10.2011