[fpc-devel] Delphi anonymous methods
Sven Barth
pascaldragon at googlemail.com
Mon Mar 4 23:16:32 CET 2013
Am 04.03.2013 22:41 schrieb "Martin" <lazarus at mfriebe.de>:
>
> On 04/03/2013 19:16, Alexander Klenin wrote:
>>>
>>> See above. The omission "of Result :=" is IMHO not desirable.
>>
>> Are you sure? Note that *any* useful single-statement function will
>> start exactly like this
>
> If a = x then Result := 4 else Result := 5;
>
> Single statement, but starts different. And is useful.
>
> But that isn't why I replied again.
>
> Reading the shortened version versus the full anonymous procedure (with
var, const, type....) and I realized, that thi's a 2 entirely different
things.
>
> The above is NOT an anonymous function. It is a reference to a term.
> I am not voting for it, but IF it was done, then it should have its own
keyword.
>
> It would not allow for var, type or anything (and it will only work for
functions, not procedures.)
> a.sort(LambdaTerm TMyCompare do x > y)
> or
> a.sort(TermRef TMyCompare(x > y) )
This is basically what my idea behind the lambs syntax was: only one
expression or statement and no variable, type or constant declarations. And
for more complex use case there are either Delphi's anonymous functions or
FPC's nested procedures/functions.
> anonymous function, then would *always* require
> a. sort( Function; prototype TMyCompare; [var ...] begin ... end )
>
> the protopybe (modifier) could work for named procedures too. (THey would
be required NOT to have any params)
> Function Foo; prototype TMyCompare;
> [var ...]
> begin ... end
Ah! Now with the named example I understand the use of the ";" after the
"function"...
Regards,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20130304/aa73e861/attachment.html>
More information about the fpc-devel
mailing list