Показать сообщение отдельно
  #1  
Старый 27.01.2012, 03:33
shhmn shhmn вне форума
Прохожий
 
Регистрация: 27.01.2012
Сообщения: 6
Репутация: 10
По умолчанию функция возвращает функцию

Можно ли создать функцию, которая будет возвращать функцию?

Например:

Код:
type
   TFunc = function(x:real):real;

function mult(a:real):TFunc;
begin

 function res(x:real):real;
 begin
   res:=a*x;
 end;

 result:=res; 

end;
В общих чертах хотелось бы такое. Чтобы функция mult создавала в памяти объект функцию с нужным кодом и возвращала на неё указатель.

Такой механизм нетрудно реализовать с помощью объектов как таковых: описать класс с полем a и функцией res и создать экземпляр объект этого класса, инициировав нужным значением переменную a и потом передавая метод res куда нужно.

Важно на выходе иметь именно TFunc - функцию с одним аргументом, потому что она потом будет передаваться в др. функцию как переменная именно типа TFunc. Это к тому что function res(a,x:real):real, которая вроде как решает проблему, здесь не подходит.

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

Но может в Delphi есть возможность сделать это без объектов?
Ответить с цитированием