I Just can't seem to wrap my head around them.

As I understand it's dynamically adding logic to a class. Are classes within the framework prepared for this?

Why should I just extend the class and add the functionality to it in the extension. I would be globally accessible and afaik much easier to maintain.

I've Read there are 4 functor types:

Comparer
Closure
Predicate
Transformer

We should probably Handle each one of them.

p.s. is there something like it in vb?

So I can state I think that lambda expressions are functors. This clears up things for me a bit :) (hehe)

  • Lambda expressions are functors?
  • Anonymous functions are functors?

But I asked this question because I ran into another type of fucntors namely these ones:

delegate void FunctorDelegate(int value);
class Addition {
    FunctorDelegate _delegate;

    public Addition AddDelegate(FunctorDelegate deleg) {
        _delegate += deleg;
        return this;
    }
    public int AddAllElements(IList< int> list) {
        int runningTotal = 0;
        foreach( int value in list) {
            runningTotal += value;
            _delegate(value);
        }
        return runningTotal;
    }
}

And then calling it with this:

 int runningTotal = new Addition()
     .AddDelegate(new FunctorDelegate(
                     delegate(int value) {
                         if ((value % 2) == 1) {
                             runningOddTotal += value;
                         }
                     }))
    .AddDelegate(new FunctorDelegate(
                     delegate(int value) {
                         if ((value % 2) == 0) {
                             runningEvenTotal += value;
                         }
                     }))
    .AddAllElements(list);

So no fancy lambda style things.

Now I have this example but it isn't at all

Edit
Report