Страница 3 из 3

Re: Процедурное программирование vs Объектное

СообщениеДобавлено: 24.07.2014 09:43:13
Лекс Айрин
Kemet, я прекрасно осознаю, что в ближайшие лет 10-15 у меня не хватит мастерства хоть на что-то серьезное. :( А хотелось бы написать ось пятого поколения. Я знаю, что это мания величия... но мечтать-то не вредно.

А вот то, чем я сейчас страдаю можно в принципе писать хоть на чем.

Re: Процедурное программирование vs Объектное

СообщениеДобавлено: 24.07.2014 09:56:23
Tango
В общем я так и сделал, разбил модель на мелкие функциональные блоки, вставил в них свою, уже готовую, но видоизменённую реализацию. и всё! Ну не совсем всё, тут ещё появилось куча других вещей, которые захотелось сделать на такой платформе. Надо всё это выложить уже.

Re: Процедурное программирование vs Объектное

СообщениеДобавлено: 01.08.2014 11:40:03
Tango
Выношу на суд общественности обновлённую версию:
https://github.com/Tango600/dcl5/

Re: Процедурное программирование vs Объектное

СообщениеДобавлено: 25.08.2015 09:51:54
perlpunk
ООП не нужно. но без него паскаль не полноценнен.

добавьте возможность создавать и возвращать функции.
Код: Выделить всё
x: = function (y:integer) begin
  return function (z:integer) begin
    return y * 2 + z;
  end;
end;

fn := x(10);
fn(20);

и паскаль возродится.

Re: Процедурное программирование vs Объектное

СообщениеДобавлено: 25.08.2015 10:23:53
wavebvg
perlpunk писал(а):добавьте возможность создавать и возвращать функции

Это синтаксический сахар. Очень удобен, когда производится прототипирование, проектирование и т.п. (когда задача|цели|методы решения|подходы ещё не формализованы), но, при отправке такого кода в продакшен, икота его автору обеспечена. Надежнее создать метод/функцию в соответствующей секции в исходнике, чем насоздавать ананонимных функций (статически, компилятор ведь). Такой функционал идеален для языка со сборщиком мусора, выполняющего байткод, там другая парадигма.
Если такая возможность появится, останется только ждать, когда юные падаваны начнут это использовать при создании гуя и обработке каскадных обновлений на форме. В общем кесареву - кесарево, интерпретатору - интерпретаторово: если нужен такой функционал - нужно использовать соответствующие решения.

Re: Процедурное программирование vs Объектное

СообщениеДобавлено: 25.08.2015 13:55:50
kazalex
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.

В FPC есть т.н. блоки, суть тоже самое, но работают только на яблоках.

Re: Процедурное программирование vs Объектное

СообщениеДобавлено: 25.08.2015 21:42:37
скалогрыз
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);

кого ломает писать .free используйте object вместо class. Ну или к hinst-у за ref-count объектами!

Re: Процедурное программирование vs Объектное

СообщениеДобавлено: 13.01.2016 20:44:28
perlpunk
слишком много бойлерплейта

Добавлено спустя 2 минуты 10 секунд:
wavebvg писал(а):Это синтаксический сахар. Очень удобен, когда производится прототипирование, проектирование и т.п. (когда задача|цели|методы решения|подходы ещё не формализованы), но, при отправке такого кода в продакшен, икота его автору обеспечена.


ничто не мешает написать прототип по быстрому. а потом если взлетело - переписать по нормальному.
собственно так и используют питон например.
но неплохо было бы веть использовать только 1 язык паскаль для разработки если б фичи такие же присутсвовали.