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




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


А именно, группа предложений со специальной функциональной скобкой вида ":{" пополняется новыми предложениями по мере введения новых форм.

Таким способом (за счет возможностей рефальских образцов) можно определять новые формы (и обычные функции), не требуя, чтобы обращение к ним было обязательно префиксным (т.е. чтобы название функции предшествовало аргументам).  Префиксный способ требует слишком много скобок, поэтому его желательно избегать, когда функция (форма) обладает, скажем, свойством ассоциативности.

Упражнение. Покажите, как можно вводить инфиксные функции.

Подсказка. Вспомните о переводе в ПОЛИЗ.

Пока будем считать, что в группе аппликации лишь два предложения

       

            :{(f) e} -> :{f e}

   (anл) 

            :{s_f  e} -> s_f{ e }   

где f - переменная, обозначающая вызов некоторой формы, а s_f - переменная, обозначающая название применяемой рефал-функции.

Первое предложение снимает скобки, ограничивающие вызов формы (они могли остаться после вычисления значения ее результата, если он был задан инфиксным выражением), а второе выписывает функциональный терм, который служит вызовом применяемой функции.

Подразумевается, что определения применяемых функций  в рефал-программе имеются.   Предложения (апл) будут оставаться последними в группе аппликации. Новые будем добавлять в ее начало (чтобы сначала действовали формы, а лишь затем их результаты - обычные функции). 

         

2.3.3. Примеры структурирующих форм

Намеченный идеал концептуальной ясности наводит на мысль, что наиболее важными могут оказаться формы, помогающие рационально структурировать программу - выражать ее смысл (реализуемую  функцию) простой и понятной комбинацией других функций. Рассмотрим несколько таких структурирующих форм.

Первая из них - композиция (ее часто обозначают звездочкой "*"). Применить результат композиции двух функций f и g - значит применить функцию f к результату применения g. "Применить" - это значит использовать аппликацию.


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