Языки программирования. Практический сравнительный анализ



Языки программирования. Практический сравнительный анализ - стр. 60


Это же относится и к последующему неформальному изложению модели Б (хороший источник полезных упражнений по представлению Б-понятий М-понятиями).

Конец замечания.

Все объекты, содержащие <?> в качестве элемента, считаются по определению равными <?> (т.е. знаки различны, а денотаты - равны). Будем считать, что все такие объекты до применения к ним каких бы то ни было операций заменяются "каноническим" представлением "<?>".

Примеры объектов: <?>, 15, AB3, <AB,1,2,3>, <a,<<B>,C>,D>.

2.4.3. Аппликация

Смысл этой операции известен. Обозначать ее будем по-прежнему через ":", однако использовать - не как префиксную, а как инфиксную операцию. Так что если f - функция и Х - объект, то 

                          f:X

обозначает результат применения функции f к объекту Х. Например 

+:<1,2>=3, 1:<A,B,C>=A, 2:<A,B,C>=B, t1:<A,B,C>=<B,C>

где слева от знака аппликации ":" выписаны знаки функций сложения, извлечения первого элемента, извлечения второго элемента и хвоста кортежа соответственно.

2.4.4. Функции

Все Б-функции отображают объекты в объекты (т.е. имеют тип О => О) и сохраняют неопределенность (т.е. f : <?> = <?> для всех f).

Каждый знак Б-функции - это либо знак примитивной функции, либо знак формы, либо знак функции, определенной в D. Другими словами, в модели Б различаются, с одной стороны, предопределенные функции и формы, и ,с другой стороны, функции, определяемые программистом с помощью пополнения D.

Равенство f : X = <?> возможно всего в двух случаях, которые полезно различать. Во-первых, выполнение операции ":" может завершаться и давать в результате <?>, и, во-вторых, оно может оказаться бесконечным - тогда это равенство считается справедливым по определению операции ":". Другими словами, виды ненормального выполнения аппликации в модели Б не различаются.

2.4.5. Условные выражения Маккарти




Содержание  Назад  Вперед