Функции хранящие состояние
От: AlexCab LinkedIn
Дата: 04.08.11 07:55
Оценка:
Допустим внутри лямбда функции может находится переменная хранящая значение до следующего вызова:

  Func LAMBDA [int /*Типы_аргументов*/][int /*Типы_результатов*/]{/*Методы(например реализация операторов) работы с лямбдой как с значением*/} //Определение типа функции

  S Func  //Две переменных(контейнера) для значений типа "Func" 
  G Func
      
  S = (Arg)          //Определяем значение типа "Func" и помещаем(присваиваем) его в переменную "S".
      {   
      H INT 0        //Это переменная для значений типа "INT" сохраняющая своё значение до следующего вызова, с начальным значением 0. 
      H = H + Arg    //"Алгебраическая прогрессия".    
      Rez = H        //Возврат результата.           
      }
      (Rez) Func
   
  Printf( S(1) )     //Отобразит "1", переменная "H" теперь хранит "1" 
  
  G = S              //Копирование лямбды в переменную "G".
  DO 3 { G(1) }      //Вызов копии в "G" 3-и раза.  
   
  Printf( S(0) )     //Отобразит "1"
  Printf( G(0) )     //Отобразит "4"


Такая лямбда это как бы сильно урезанный объект из ООП(с одним методом).
Как вы считаете, может ли быть полезной на практике такая возможность?
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.