![Sad :(](./images/smilies/icon_sad.gif)
А вот то, чем я сейчас страдаю можно в принципе писать хоть на чем.
Модератор: Модераторы
x: = function (y:integer) begin
return function (z:integer) begin
return y * 2 + z;
end;
end;
fn := x(10);
fn(20);
perlpunk писал(а):добавьте возможность создавать и возвращать функции
perlpunk писал(а):добавьте возможность создавать и возвращать функции
type
tfxfunc = reference to function(const z : integer) : integer;
function fx(const y : integer) : tfxfunc;
begin
exit(function(const z : integer) : Integer
begin
exit(y * 2 + z);
end;
end;
var
fn : tfxfunc;
i :integer;
begin
fn := fx(10);
i := fn(20);
writeln(i);
readln;
end.
perlpunk писал(а):ООП не нужно. но без него паскаль не полноценнен.
добавьте возможность создавать и возвращать функции.
- Код: Выделить всё
x: = function (y:integer) begin
return function (z:integer) begin
return y * 2 + z;
end;
end;
fn := x(10);
fn(20);
и паскаль возродится.
TCalc = class(TLispLover)
y : integer;
constructor Create(ay: integer);
function invoke(z: Integer): Integer;
end;
function TCalc.invoke(z: Integer): Integer;
begin
Result:= y * 2 + z;
end;
function x(ay: Integer): TCalc;
begin
Result:=TCalc.Create;
Result.y:=ay;
end;
var
fn : TCalc;
fn := x(10);
fn.invoke(20);
wavebvg писал(а):Это синтаксический сахар. Очень удобен, когда производится прототипирование, проектирование и т.п. (когда задача|цели|методы решения|подходы ещё не формализованы), но, при отправке такого кода в продакшен, икота его автору обеспечена.
Вернуться в Компилятор / язык программирования
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2