Necesito ayuda para entender lambda (curry)

estoy leyendo C # acelerado, realmente no entiendo el siguiente código:

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

en la última línea, ¿a qué se refiere x? y hay otro

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

¿Cómo evalúo esto?(y) => (x) => func( x, y ) lo que pasa donde ... lo hace confuso.

Respuestas a la pregunta(4)

Su respuesta a la pregunta