Re: Лямбда-исчисление в рефале.


Subject: Re: Лямбда-исчисление в рефале.
From: Sergei M. Abramov (at home) (abram@botik.ru)
Date: Tue Aug 28 2001 - 19:50:30 MSD


>А поскольку результат <Adder ...> - замыкание, то есть сама функция, а не ее
имя
>(идентификатор), то и писать надо просто <<Adder1> 2>. Правда в рефале-5 такая
>запись невозможна (в отличие от рефалов 6 и +).

Ooops! В Рефале Плюс, как я помню, за "<" всегда должен идти имя функции
(слово-константа-имя-функции).

А для аппликации есть библиотечная Apply. И у этой Apply весьма строгий формат:

$func? Apply sF eX = eY;

(*** Более точно---цитирую документацию:

> 3.APPLY: ВЫЗОВ ФУНКЦИЙ ПЕРЕДАННЫХ ЧЕРЕЗ ПАРАМЕТРЫ
>
> $func? APPLY s.Name e.Exp = e.Exp;
>
> APPLY применяет функцию, на которую указывает ссылка s.Name
> к выражению e.Exp и выдает результат этого вычисления.

***)

При этом (если мне не изменяет память) в run-time эта Apply контролирует, что
переданный ей sF есть имя функции с таким вот форматом:

    $func? sF eX = eY;

или с таким:

    $func sF eX = eY;

И если это не так, то она (Apply) производит из себя $error -- если я не
ошибаюсь...

Так что, с греческими мю и с замыканиями в Рефале Плюс не очень-то. Ну,...
компромис "интерпретация или компиляция".

Удачи

Сергей



This archive was generated by hypermail 2b25 : Mon Oct 25 2004 - 21:24:59 MSD