Cтраница 2
Если / - примитивная функция, то мы располагаем ее определением и знаем, как ее применять. Если / - функциональная форма, то определение формы содержит информацию о том, как вычислять f: x в терминах параметров формы, что может быть сделано при дальнейшем использовании этих правил. Если функция / определена согласно Def / г, как в ( 3), то для отыскания f: х мы вычисляем г: х, а это можно сделать дальнейшим применением данных правил. [16]
Однако не все примитивные функции являются мономорфными, например hd: list a - a является полиморфной, так как ее определение типа содержит переменную типа а. Можно было бы ввести в рассмотрение произвольное число базовых типов, но нам вполне достаточно пит, truval и list, чтобы объяснить рассматриваемые принципы. [17]
Допустим, имеется примитивная функция PLUS, выполняющая сложение двух чисел. [18]
Основная нагрузка ложится на примитивные функции и процедуры, введенные в предшествующих главах. Лучше всего они документируются с помощью страниц руководства, подобных приведенным для каждой программы в книге. В оболочке должны также содержаться функции определения создаваемой программы, производиться любая инициализация, требуемая поддерживающими программами, вызов программы и, возможно, даже наводиться порядок после этого вызова. [19]
Это означает, что примитивные функции, подобные функции, аргумент которых является кортежем чисел, должны транслироваться в функции, явным образом разделяющие этот аргумент на части. [20]
Следует заметить, что примитивные функции, имеющие больше одного аргумента, записываются в карринговой форме, как описано в гл. Например, выражение 13 интерпретируется как ( 1) 3, где результатом применения функции к аргументу 1 является новая функция, эквивалентная функции следующий за на множестве целых чисел. [21]
Макросы, соответствующие применению примитивных функций, используют подходящее дельта-правило этого примитива, а полный набор макросов для операций со стеком и дампом, работы с графами и для вызова функций и возврата описан в трех следующих разделах. Однако, хотя смысл и сущность этих операций станут ясны по мере их рассмотрения, эта часть текста может быть пропущена при первом прочтении и использоваться лишь для ссылок при необходимости. Сначала, однако, следует ввести несколько общих обозначений. [22]
Убедимся теперь, что примитивных функций, не входящих в семейство ( 2), у функции f ( x) быть не может. [23]
При обращении к синониму примитивной функции необходимо задавать правильное число параметров. [24]
ЬЕМ ( целое) - примитивная функция, значением которой является структурный образец, успешно сопоставляющийся с любой цепочкой указанной длины. [25]
ARBNO ( образец) - примитивная функция, значением которой служит структурный образец, сопоставляющийся с нулевым или большим числом последовательно расположенных цепочек, каждая из которых сопоставляется с параметром функции. Когда сканер при просмотре слева направо впервые встречает ARBNO ( o6pase4), происходит сопоставление с пустой цепочкой. При следующих попытках ARBNO стремится увеличить длину подцепочки, сопоставленной с параметром. [26]
Основой для GENTEMP является соответствующая более примитивная функция GENSYM, которая лишь возвращает новое имя, не включая его в систему. [27]
Рассмотрение связного группового разложения логарифмд примитивной функции требует сложного математического формализма; при этом предпочтительным перед остальными оказывается формализм вторичного квантования ( см. стр. [28]
Рассмотрение связного группового разложения логарифма примитивной функции требует сложного математического формализма; при этом предпочтительным перед остальными оказывается формализм вторичного квантования ( см. стр. [29]
Лекциях по интегрированию и отысканию примитивных функций, которые вскоре появятся, г. Лебег дает этой теореме доказательство, которое в сущности весьма схоже с доказательством г. Линделефа. Но г. Лебег пользуется языком трансфинитных чисел, так что менее явно видно, что теория этих чисел там не нужна. [30]