Closures issues
Andrei Khropov
andkhropov at nospam_mtu-net.ru
Mon Jul 24 03:01:23 PDT 2006
Andrei Khropov wrote:
>
> Hello everybody.
>
> There's a reoccuring issue with closures, i.e. downwards FunArg problem
> (http://en.wikipedia.org/wiki/Funarg_problem#Downwards_funarg_problem).
>
> In simple terms delegates that contain pointer to function that has exited are
> actually point to some garbage. This leads to UB.
>
> So I would like to clarify situation a bit:
>
> 1) I.e. should D support full closures (like functional languages do)?
> Solution is actually simple - allocate local variables that are used by a
> delegate in a heap object (of course only if it is actually necessary)
> ( like here: http://www.digitalmars.com/drn-bin/wwwnews?digitalmars.D/39525
> ). This will actually enable truly functions as first-class objects and
> higher-order functions
> (because we could return delegates from functions)
I recently read that C# 2.0 does that:
http://msdn.microsoft.com/msdnmag/issues/06/00/C20/default.aspx#S7
Better keep up with the competition...
--
AKhropov
More information about the Digitalmars-d
mailing list