Функциональный аргумент - Большая Энциклопедия Нефти и Газа, статья, страница 4
Глупые женятся, а умные выходят замуж. Законы Мерфи (еще...)

Функциональный аргумент

Cтраница 4


Его значением является выражение ( ( A. Здесь функциональный аргумент задан с помощью QUOTE, так как он не содержит свободных переменных.  [46]

Существуют два основных типа МАР-функций. Другие применяют функциональный аргумент к последовательным CDR списка. Результатом этих повторяющихся вычислений будет список, состоящий из результатов последовательных применений функции. Кроме того, функции отличаются друг от друга способом формирования результата. Во всех случаях число аргументов-списков должно совпадать с числом аргументов применяемой для вычислений функции.  [47]

Использованные выше функции ( ATOM, ПАРА1) были функциями с одним аргументом, т.е. каждый раз они имеют дело с одним элементом. Если бы функции MAPCAR был передан функциональный аргумент fn с большим количеством параметров, то и у МАР-функци-онала было бы соответствующее количество параметров-списков, которые обрабатываются параллельно.  [48]

В этой абстракции функция F выражает действия, с помощью которых осуществляется построение результата ( CONS или NCONC), и G определяет объект, к которому применяется функциональный аргумент. Функция Н в вызове МАР-функцни является функциональным аргументом, a Y - списочным аргументом.  [49]

Внутри определяющего выражения de или определяющего выражения del функции fn, если это - функция класса EXPR, могут встречаться не только связанные переменные этого выражения, но и другие переменные, которые называются свободными. Значения свобод ных переменных в момент задания функционального аргумента и в момент его использования могут отличаться друг от друга. Считается, что при вычислении тела определяющего выражения de или fifet должны использоваться те значения свободных переменных, которые эти переменные имели во время задания функционального аргумента, а не те, которые они могли получить позже. Это - существенное исключение из общего правила ( см. разд. Задавая функциональный аргумент в виде ( FUNCTION de) или ( FUNCTION fn), мы и обеспечиваем соблюдение этого особого правила нахождения значений свободных переменных в телах функциональных аргументов. Если же в теле определяющего выражения ни прямо ни косвенно ( через другие функции класса EXPR) не используются свободные переменные, то вместо FUNCTION можно прибегнуть к QUOTE. Последнюю форму заведомо можно применять, если fn - наименование встроенной функции, так как такие функции не связаны ни с какими определяющими выражениями, и проблемы свободных переменных для них нет.  [50]

Рассмотренную выше проблему определения контекста при вычислении свободных переменных функционального аргумента в Лиспе называют фунарг-проблемой. Эта проблема получает разрешение путем использования в качестве функционального аргумента замыкания, в котором можно зафиксировать значения свободных переменных из контекста момента определения. При этом конфликты по именам будут исключены.  [51]



Страницы:      1    2    3    4