03.03.2013 2:22, Sven Barth пишет:
On 02.03.2013 20:55, Sven Barth wrote:
Also there are open questions which require brainstorm:
1. Does Pascal needs other implementation of closures which is different
from anonymous methods implementation?

I would say no. After all the method implementation itself stays the
same, but the captured variables should be different. Or what does this
print:

I've now read through your PDF and somehow I'd like to have a better
implementation in FPC. Let's consider the following code (Note: I've
never used anonymous methods yet, so this is what I naively would expect):

=== code begin ===

var
   i: LongInt;
   SomeProc1, SomeProc2: reference to procedure;
begin
   i := 42;

   SomeProc1 := procedure
                begin
                  Writeln('Proc1: ' + i);
                end;

   i := 21;

   SomeProc2 := procedure
                begin
                  Writeln('Proc2: ' + i);
                end;

   SomeProc1;
   SomeProc2;
end;

=== code end ===

The output I'd expect here is the following:

=== output begin ===

42
21

=== output end ===

But if I've understood you correctly I'll get the following instead:

=== output begin ===

21
21


BTW closurs in c++ support both cases (capture by value and by reference).



_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to