Skip to content

Optimize nested lambdas with closures #350

Open
@dadhi

Description

@dadhi

Currently FEC stores the data in the nested lambda closure and then calls method Curry to remove the closure from the lambda signature.
For example for nested Func<int> the Curry is Func<int> Curry(Func<Closure, int> f, Closure c) => () => f(c). It means that Curry creates another closure over f and c.

To avoid that, we may store the f in c and use an extension method for closure to use the closure as target, e.g. T Closure.Func<T>(this Closure c) => c.f(c); and use it as Func<int> f = c.Func<int> which is not a valid C#.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions