[fpc-pascal] Re: Delphi's anonymous functions in Free Pascal

Marco van de Voort marcov at stack.nl
Tue Oct 25 13:52:06 CEST 2011


In our previous episode, michael.vancanneyt at wisa.be said:
> >
> > targethread.queue(
> >   procedure(targetobject:ttargetobject;a:integer;b:someobject;c:string)
> >              begin
> >                targetobject.destinationprocedure(a,b,c);
> >              end;
> >
> > Note how common this looks compared to the original.
> 
> One point is that you could do the above with a local (and named) 
> procedure as well, and still have all the context. 

> At the very least you would not be raping pascal's readability by putting a
> complete procedure declaration inside a code block.
> 
> I don't know about you, but I have serious trouble reading the above monstrosity.
> It looks like you forgot the closing ) for the queue call.

One can debate the syntax. I won't, since even while I have similar
reservations, that will lead to the usual Delphi sucks debate, possible
implementation of an-orphaned-at-birth FPC specific syntax, and in the end
the Delphi syntax always prevails, leading to a lot of wasted time in
discussion and implementation of own inventions.

That is such a common pattern on these lists, I'm thinking about an acronym
for it to save time :-) So sufficient to say, I think own syntax inventions
are worse than the problem in the first place, and sooner or later we have
to live with it.

However there was also a questioning of the use(functionality) of anonymous
functions, I hope that I have now at least explained a typical use case, so
we can put that to rest. 





More information about the fpc-pascal mailing list