Michael Schnell pisze:
Again something inspired by Delphi-Prism ?

( http://prismwiki.codegear.com/en/Lambda_Expressions )

No at all, I don't even see this before. I thing long about this. But lately I see this in C++ (strange) and Lisp (beautiful)
In Prism have You:

c -> c.Name = 'Smith'

which is very strange, special syntax, and need to be translate to "method", and declaration longer than one line is awful,

my proposition semantically is between properties (they consist also two function), aspect programming and lambda

is very easy to translate to ordinal pascal( lambda invoke change to 
repeat-while iteration,
similarly as in generics)

has wider application:

from FPC WIKI:
procedure StringLoop(S: String);
var
 C: Char;
begin
 for C in S do
   DoSomething(C);
end;
my prop:

procedure stringloop(s :tMyString);
begin
  {with} s.eachword do begin
     if s.currentword<>'begin' then
       writeln(s.currentword);
  end;
end;

of course I can write
procedure stringloop(s :tMyString);
begin
  s.firstWord;
  try
  while  s.nexword do begin
     if s.currentword<>'begin' then
       writeln(s.currentword);
  end;
  except
    s.exceptWord;
end; end;

which can be equivalent

from compiler side invoke of lambda is translate to proper iteration before 
main compilation
from developer side: its easy to use as properties, fewer bugs caused forget of initialization or finalization, or use incompatible init and step
function in iterators




--
 Darek




_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to