Нужна помощь в понимании лямбда (каррирование)

Я читаю Accelerated C #, я действительно не понимаю следующий код:

public static Func<TArg1, TResult> Bind2nd<TArg1, TArg2, TResult> (
    this Func<TArg1, TArg2, TResult> func,
    TArg2 constant ) 
{
    return (x) => func( x, constant );
}

в последней строке, что означает x к? и есть еще один:

public static Func<TArg2, Func<TArg1, TResult>> Bind2nd<TArg1, TArg2, TResult>
( this Func<TArg1, TArg2, TResult> func )
{
    return (y) => (x) => func( x, y );
}

Как я могу это оценить? (y) => (x) => func (x, y) что передается где ... это сбивает с толку.

7
задан abatishchev 2 September 2010 в 07:44
поделиться