Cadenza : Cadenza Namespace

FuncCoda Class

Provides extension methods on Action<T>, Func<T, TResult>, and related delegates.

public static class FuncCoda

⊟ Remarks

Cadenza.FuncCoda provides methods methods for:

Currying via partial application is a way to easily transform functions which accept N arguments into functions which accept N-1 arguments, by "fixing" arguments with a value.

C# Example
            // partial application:
            Func<int,int,int,int> function = (int a, int b, int c) => a + b + c;
            Func<int,int,int>     f_3      = function.Curry (3);
            Func<int>             f_321    = function.Curry (3, 2, 1);
            Console.WriteLine (f_3 (2, 1));  // prints (3 + 2 + 1) == "6"
            Console.WriteLine (f_321 ());    // prints (3 + 2 + 1) == "6"

"Traditional" currying converts a delegate that accepts N arguments into a delegate which accepts only one argument, but when invoked may return a further delegate (etc.) until the final value is returned.

C# Example
            // traditional currying:
            Func<int, Func<int, Func<int, int>>> curry = function.Curry ();
            Func<int, Func<int, int>>            fc_1  = curry (1);
            Func<int, int>                       fc_12 = fc_1 (2);
            Console.WriteLine (fc_12 (3));        // prints (3 + 2 + 1) == "6"
            Console.WriteLine (curry (3)(2)(1));  // prints (3 + 2 + 1) == "6"

Composition is a way to easy chain (or pipe) together multiple delegates so that the return value of a "composer" delegate is used as the input parameter for the chained delegate:

C# Example
            Func<int,string> tostring = Lambda.F ((int n) => n.ToString ());
            Func<int, int>    doubler = Lambda.F ((int n) => n * 2);
            Func<int, string>
            double_then_tostring = tostring.Compose (doubler);
            Console.WriteLine (double_then_tostring (5));
            // Prints "10";

All possible argument and return delegate permutations are provided for the Func<T, TResult> and related types.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Members

See Also: Inherited members from object.

⊟ Public Methods

static
Compose<T,TResult> (this Func<T, TResult>, Func<T>) : Func<TResult>
Creates a Func<TResult> delegate.
static
Compose<T1,T2,TResult> (this Func<T2, TResult>, Func<T1, T2>) : Func<T1, TResult>
Creates a Func<T1, TResult> delegate.
static
Compose<T1,T2,T3,TResult> (this Func<T3, TResult>, Func<T1, T2, T3>) : Func<T1, T2, TResult>
Creates a Func<T1, T2, TResult> delegate.
static
Compose<T1,T2,T3,T4,TResult> (this Func<T4, TResult>, Func<T1, T2, T3, T4>) : Func<T1, T2, T3, TResult>
Creates a Func<T1, T2, T3, TResult> delegate.
static
Compose<T1,T2,T3,T4,T5,TResult> (this Func<T5, TResult>, Func<T1, T2, T3, T4, T5>) : Func<T1, T2, T3, T4, TResult>
Creates a Func<T1, T2, T3, T4, TResult> delegate.
static
Curry<T,TResult> (this Func<T, TResult>) : Func<T, TResult>
Creates a Func<T, TResult> for currying.
static
Curry<T,TResult> (this Func<T, TResult>, Tuple<T>) : Func<TResult>
Creates a Func<TResult> delegate.
static
Curry<T,TResult> (this Func<T, TResult>, T) : Func<TResult>
Creates a Func<TResult> delegate.
static
Curry<T1,T2,TResult> (this Func<T1, T2, TResult>) : Func<T1, Func<T2, TResult>>
Creates a Func<T1, Func<T2, TResult>> for currying.
static
Curry<T1,T2,TResult> (this Func<T1, T2, TResult>, Tuple<T1, T2>) : Func<TResult>
Creates a Func<TResult> delegate.
static
Curry<T1,T2,TResult> (this Func<T1, T2, TResult>, Tuple<T1>) : Func<T2, TResult>
Creates a Func<T2, TResult> delegate.
static
Curry<T1,T2,TResult> (this Func<T1, T2, TResult>, T1) : Func<T2, TResult>
Creates a Func<T2, TResult> delegate.
static
Curry<T1,T2,TResult> (this Func<T1, T2, TResult>, T1, T2) : Func<TResult>
Creates a Func<TResult> delegate.
static
Curry<T1,T2,T3,TResult> (this Func<T1, T2, T3, TResult>) : Func<T1, Func<T2, Func<T3, TResult>>>
Creates a Func<T1, Func<T2, Func<T3, TResult>>> for currying.
static
Curry<T1,T2,T3,TResult> (this Func<T1, T2, T3, TResult>, Tuple<T1, T2, T3>) : Func<TResult>
Creates a Func<TResult> delegate.
static
Curry<T1,T2,T3,TResult> (this Func<T1, T2, T3, TResult>, Tuple<T1, T2>) : Func<T3, TResult>
Creates a Func<T3, TResult> delegate.
static
Curry<T1,T2,T3,TResult> (this Func<T1, T2, T3, TResult>, Tuple<T1>) : Func<T2, T3, TResult>
Creates a Func<T2, T3, TResult> delegate.
static
Curry<T1,T2,T3,TResult> (this Func<T1, T2, T3, TResult>, T1) : Func<T2, T3, TResult>
Creates a Func<T2, T3, TResult> delegate.
static
Curry<T1,T2,T3,TResult> (this Func<T1, T2, T3, TResult>, T1, T2) : Func<T3, TResult>
Creates a Func<T3, TResult> delegate.
static
Curry<T1,T2,T3,TResult> (this Func<T1, T2, T3, TResult>, T1, T2, T3) : Func<TResult>
Creates a Func<TResult> delegate.
static
Curry<T1,T2,T3,T4,TResult> (this Func<T1, T2, T3, T4, TResult>) : Func<T1, Func<T2, Func<T3, Func<T4, TResult>>>>
Creates a Func<T1, Func<T2, Func<T3, Func<T4, TResult>>>> for currying.
static
Curry<T1,T2,T3,T4,TResult> (this Func<T1, T2, T3, T4, TResult>, Tuple<T1, T2, T3, T4>) : Func<TResult>
Creates a Func<TResult> delegate.
static
Curry<T1,T2,T3,T4,TResult> (this Func<T1, T2, T3, T4, TResult>, Tuple<T1, T2, T3>) : Func<T4, TResult>
Creates a Func<T4, TResult> delegate.
static
Curry<T1,T2,T3,T4,TResult> (this Func<T1, T2, T3, T4, TResult>, Tuple<T1, T2>) : Func<T3, T4, TResult>
Creates a Func<T3, T4, TResult> delegate.
static
Curry<T1,T2,T3,T4,TResult> (this Func<T1, T2, T3, T4, TResult>, Tuple<T1>) : Func<T2, T3, T4, TResult>
Creates a Func<T2, T3, T4, TResult> delegate.
static
Curry<T1,T2,T3,T4,TResult> (this Func<T1, T2, T3, T4, TResult>, T1) : Func<T2, T3, T4, TResult>
Creates a Func<T2, T3, T4, TResult> delegate.
static
Curry<T1,T2,T3,T4,TResult> (this Func<T1, T2, T3, T4, TResult>, T1, T2) : Func<T3, T4, TResult>
Creates a Func<T3, T4, TResult> delegate.
static
Curry<T1,T2,T3,T4,TResult> (this Func<T1, T2, T3, T4, TResult>, T1, T2, T3) : Func<T4, TResult>
Creates a Func<T4, TResult> delegate.
static
Curry<T1,T2,T3,T4,TResult> (this Func<T1, T2, T3, T4, TResult>, T1, T2, T3, T4) : Func<TResult>
Creates a Func<TResult> delegate.

⊟ Member Details

⊟ Compose<T,TResult> Generic Method

Creates a Func<TResult> delegate.

public static Func<TResult> Compose<T, TResult> (this Func<T, TResult> self, Func<T> composer)

⊟ Type Parameters

T
The Func<T> return type, and Func<T, TResult> argument type.
TResult
The Func<T, TResult> return type.

⊟ Parameters

self
The Func<T, TResult> to compose.
composer
The Func<T> to compose with self.

⊟ Returns

Returns a Func<TResult> which, when invoked, will invoke composer and pass the return value of composer to self.

⊟ Exceptions

Type Reason
ArgumentNullException

self is null.

-or-

composer is null.

⊟ Remarks

Composition is useful for chaining delegates together, so that the return value of composer is automatically used as the input parameter for self.

C# Example
            Func<int,string> tostring = Lambda.F ((int n) => n.ToString ());
            Func<int, int>    doubler = Lambda.F ((int n) => n * 2);
            Func<int, string>
            double_then_tostring = tostring.Compose (doubler);
            Console.WriteLine (double_then_tostring (5));
            // Prints "10";

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Compose<T1,T2,TResult> Generic Method

Creates a Func<T1, TResult> delegate.

public static Func<T1, TResult> Compose<T1, T2, TResult> (this Func<T2, TResult> self, Func<T1, T2> composer)

⊟ Type Parameters

T1
Documentation for this section has not yet been entered.
T2
The Func<T1, T2> return type, and Func<T2, TResult> argument type.
TResult
The Func<T2, TResult> return type.

⊟ Parameters

self
The Func<T2, TResult> to compose.
composer
The Func<T1, T2> to compose with self.

⊟ Returns

Returns a Func<T1, TResult> which, when invoked, will invoke composer and pass the return value of composer to self.

⊟ Exceptions

Type Reason
ArgumentNullException

self is null.

-or-

composer is null.

⊟ Remarks

Composition is useful for chaining delegates together, so that the return value of composer is automatically used as the input parameter for self.

C# Example
            Func<int,string> tostring = Lambda.F ((int n) => n.ToString ());
            Func<int, int>    doubler = Lambda.F ((int n) => n * 2);
            Func<int, string>
            double_then_tostring = tostring.Compose (doubler);
            Console.WriteLine (double_then_tostring (5));
            // Prints "10";

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Compose<T1,T2,T3,TResult> Generic Method

Creates a Func<T1, T2, TResult> delegate.

public static Func<T1, T2, TResult> Compose<T1, T2, T3, TResult> (this Func<T3, TResult> self, Func<T1, T2, T3> composer)

⊟ Type Parameters

T1
A Func<T1, T2, T3> parameter type.
T2
Documentation for this section has not yet been entered.
T3
The Func<T1, T2, T3> return type, and Func<T3, TResult> argument type.
TResult
The Func<T3, TResult> return type.

⊟ Parameters

self
The Func<T3, TResult> to compose.
composer
The Func<T1, T2, T3> to compose with self.

⊟ Returns

Returns a Func<T1, T2, TResult> which, when invoked, will invoke composer and pass the return value of composer to self.

⊟ Exceptions

Type Reason
ArgumentNullException

self is null.

-or-

composer is null.

⊟ Remarks

Composition is useful for chaining delegates together, so that the return value of composer is automatically used as the input parameter for self.

C# Example
            Func<int,string> tostring = Lambda.F ((int n) => n.ToString ());
            Func<int, int>    doubler = Lambda.F ((int n) => n * 2);
            Func<int, string>
            double_then_tostring = tostring.Compose (doubler);
            Console.WriteLine (double_then_tostring (5));
            // Prints "10";

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Compose<T1,T2,T3,T4,TResult> Generic Method

Creates a Func<T1, T2, T3, TResult> delegate.

public static Func<T1, T2, T3, TResult> Compose<T1, T2, T3, T4, TResult> (this Func<T4, TResult> self, Func<T1, T2, T3, T4> composer)

⊟ Type Parameters

T1
A Func<T1, T2, T3, T4> parameter type.
T2
A Func<T1, T2, T3, T4> parameter type.
T3
Documentation for this section has not yet been entered.
T4
The Func<T1, T2, T3, T4> return type, and Func<T4, TResult> argument type.
TResult
The Func<T4, TResult> return type.

⊟ Parameters

self
The Func<T4, TResult> to compose.
composer
The Func<T1, T2, T3, T4> to compose with self.

⊟ Returns

Returns a Func<T1, T2, T3, TResult> which, when invoked, will invoke composer and pass the return value of composer to self.

⊟ Exceptions

Type Reason
ArgumentNullException

self is null.

-or-

composer is null.

⊟ Remarks

Composition is useful for chaining delegates together, so that the return value of composer is automatically used as the input parameter for self.

C# Example
            Func<int,string> tostring = Lambda.F ((int n) => n.ToString ());
            Func<int, int>    doubler = Lambda.F ((int n) => n * 2);
            Func<int, string>
            double_then_tostring = tostring.Compose (doubler);
            Console.WriteLine (double_then_tostring (5));
            // Prints "10";

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Compose<T1,T2,T3,T4,T5,TResult> Generic Method

Creates a Func<T1, T2, T3, T4, TResult> delegate.

public static Func<T1, T2, T3, T4, TResult> Compose<T1, T2, T3, T4, T5, TResult> (this Func<T5, TResult> self, Func<T1, T2, T3, T4, T5> composer)

⊟ Type Parameters

T1
A Func<T1, T2, T3, T4, T5> parameter type.
T2
A Func<T1, T2, T3, T4, T5> parameter type.
T3
A Func<T1, T2, T3, T4, T5> parameter type.
T4
Documentation for this section has not yet been entered.
T5
The Func<T1, T2, T3, T4, T5> return type, and Func<T5, TResult> argument type.
TResult
The Func<T5, TResult> return type.

⊟ Parameters

self
The Func<T5, TResult> to compose.
composer
The Func<T1, T2, T3, T4, T5> to compose with self.

⊟ Returns

Returns a Func<T1, T2, T3, T4, TResult> which, when invoked, will invoke composer and pass the return value of composer to self.

⊟ Exceptions

Type Reason
ArgumentNullException

self is null.

-or-

composer is null.

⊟ Remarks

Composition is useful for chaining delegates together, so that the return value of composer is automatically used as the input parameter for self.

C# Example
            Func<int,string> tostring = Lambda.F ((int n) => n.ToString ());
            Func<int, int>    doubler = Lambda.F ((int n) => n * 2);
            Func<int, string>
            double_then_tostring = tostring.Compose (doubler);
            Console.WriteLine (double_then_tostring (5));
            // Prints "10";

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T,TResult> Generic Method

Creates a Func<T, TResult> for currying.

public static Func<T, TResult> Curry<T, TResult> (this Func<T, TResult> self)

⊟ Type Parameters

T
The first value type.
TResult
The return value type.

⊟ Parameters

self
The Func<T, TResult> to curry.

⊟ Returns

A Func<T, TResult> which, when invoked, will invoke self.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

This is the more "traditional" view of currying, turning a method which takes (X * Y)->Z (i.e. separate arguments) into a X -> (Y -> Z) (that is a "chain" of nested Funcs such that you provide only one argument to each Func until you provide enough arguments to invoke the original method).

C# Example
            Func<int,int,int,int> function = (int a, int b, int c) => a + b + c;
            Func<int,Func<int,Func<int, int>>> curry = function.Curry ();
            Assert.AreEqual(6, curry (3)(2)(1));

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T,TResult> Generic Method

Creates a Func<TResult> delegate.

public static Func<TResult> Curry<T, TResult> (this Func<T, TResult> self, Tuple<T> values)

⊟ Type Parameters

T
A Func<T, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T, TResult> to curry.
values
A value of type Cadenza.Tuple<T> which contains the values to fix.

⊟ Returns

Returns a Func<TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T,TResult> Generic Method

Creates a Func<TResult> delegate.

public static Func<TResult> Curry<T, TResult> (this Func<T, TResult> self, T value)

⊟ Type Parameters

T
A Func<T, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T, TResult> to curry.
value
A value of type T to fix.

⊟ Returns

Returns a Func<TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,TResult> Generic Method

Creates a Func<T1, Func<T2, TResult>> for currying.

public static Func<T1, Func<T2, TResult>> Curry<T1, T2, TResult> (this Func<T1, T2, TResult> self)

⊟ Type Parameters

T1
The first value type.
T2
The second value type.
TResult
The return value type.

⊟ Parameters

self
The Func<T1, T2, TResult> to curry.

⊟ Returns

A Func<T1, Func<T2, TResult>> which, when invoked, will return a Func<T2, TResult> which, when invoked, will invoke self.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

This is the more "traditional" view of currying, turning a method which takes (X * Y)->Z (i.e. separate arguments) into a X -> (Y -> Z) (that is a "chain" of nested Funcs such that you provide only one argument to each Func until you provide enough arguments to invoke the original method).

C# Example
            Func<int,int,int,int> function = (int a, int b, int c) => a + b + c;
            Func<int,Func<int,Func<int, int>>> curry = function.Curry ();
            Assert.AreEqual(6, curry (3)(2)(1));

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,TResult> Generic Method

Creates a Func<TResult> delegate.

public static Func<TResult> Curry<T1, T2, TResult> (this Func<T1, T2, TResult> self, Tuple<T1, T2> values)

⊟ Type Parameters

T1
A Func<T1, T2, TResult> parameter type.
T2
A Func<T1, T2, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, TResult> to curry.
values
A value of type Cadenza.Tuple<T1, T2> which contains the values to fix.

⊟ Returns

Returns a Func<TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,TResult> Generic Method

Creates a Func<T2, TResult> delegate.

public static Func<T2, TResult> Curry<T1, T2, TResult> (this Func<T1, T2, TResult> self, Tuple<T1> values)

⊟ Type Parameters

T1
A Func<T1, T2, TResult> parameter type.
T2
A Func<T1, T2, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, TResult> to curry.
values
A value of type Cadenza.Tuple<T1> which contains the values to fix.

⊟ Returns

Returns a Func<T2, TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,TResult> Generic Method

Creates a Func<T2, TResult> delegate.

public static Func<T2, TResult> Curry<T1, T2, TResult> (this Func<T1, T2, TResult> self, T1 value1)

⊟ Type Parameters

T1
A Func<T1, T2, TResult> parameter type.
T2
A Func<T1, T2, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, TResult> to curry.
value1
A value of type T1 to fix.

⊟ Returns

Returns a Func<T2, TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,TResult> Generic Method

Creates a Func<TResult> delegate.

public static Func<TResult> Curry<T1, T2, TResult> (this Func<T1, T2, TResult> self, T1 value1, T2 value2)

⊟ Type Parameters

T1
A Func<T1, T2, TResult> parameter type.
T2
A Func<T1, T2, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, TResult> to curry.
value1
A value of type T1 to fix.
value2
A value of type T2 to fix.

⊟ Returns

Returns a Func<TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,T3,TResult> Generic Method

Creates a Func<T1, Func<T2, Func<T3, TResult>>> for currying.

public static Func<T1, Func<T2, Func<T3, TResult>>> Curry<T1, T2, T3, TResult> (this Func<T1, T2, T3, TResult> self)

⊟ Type Parameters

T1
The first value type.
T2
The second value type.
T3
The third value type.
TResult
The return value type.

⊟ Parameters

self
The Func<T1, T2, T3, TResult> to curry.

⊟ Returns

A Func<T1, Func<T2, Func<T3, TResult>>> which, when invoked, will return a Func<T2, Func<T3, TResult>> which, when invoked, will return a Func<T3, TResult> which, when invoked, will invoke self.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

This is the more "traditional" view of currying, turning a method which takes (X * Y)->Z (i.e. separate arguments) into a X -> (Y -> Z) (that is a "chain" of nested Funcs such that you provide only one argument to each Func until you provide enough arguments to invoke the original method).

C# Example
            Func<int,int,int,int> function = (int a, int b, int c) => a + b + c;
            Func<int,Func<int,Func<int, int>>> curry = function.Curry ();
            Assert.AreEqual(6, curry (3)(2)(1));

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,T3,TResult> Generic Method

Creates a Func<TResult> delegate.

public static Func<TResult> Curry<T1, T2, T3, TResult> (this Func<T1, T2, T3, TResult> self, Tuple<T1, T2, T3> values)

⊟ Type Parameters

T1
A Func<T1, T2, T3, TResult> parameter type.
T2
A Func<T1, T2, T3, TResult> parameter type.
T3
A Func<T1, T2, T3, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, T3, TResult> to curry.
values
A value of type Cadenza.Tuple<T1, T2, T3> which contains the values to fix.

⊟ Returns

Returns a Func<TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,T3,TResult> Generic Method

Creates a Func<T3, TResult> delegate.

public static Func<T3, TResult> Curry<T1, T2, T3, TResult> (this Func<T1, T2, T3, TResult> self, Tuple<T1, T2> values)

⊟ Type Parameters

T1
A Func<T1, T2, T3, TResult> parameter type.
T2
A Func<T1, T2, T3, TResult> parameter type.
T3
A Func<T1, T2, T3, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, T3, TResult> to curry.
values
A value of type Cadenza.Tuple<T1, T2> which contains the values to fix.

⊟ Returns

Returns a Func<T3, TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,T3,TResult> Generic Method

Creates a Func<T2, T3, TResult> delegate.

public static Func<T2, T3, TResult> Curry<T1, T2, T3, TResult> (this Func<T1, T2, T3, TResult> self, Tuple<T1> values)

⊟ Type Parameters

T1
A Func<T1, T2, T3, TResult> parameter type.
T2
A Func<T1, T2, T3, TResult> parameter type.
T3
A Func<T1, T2, T3, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, T3, TResult> to curry.
values
A value of type Cadenza.Tuple<T1> which contains the values to fix.

⊟ Returns

Returns a Func<T2, T3, TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,T3,TResult> Generic Method

Creates a Func<T2, T3, TResult> delegate.

public static Func<T2, T3, TResult> Curry<T1, T2, T3, TResult> (this Func<T1, T2, T3, TResult> self, T1 value1)

⊟ Type Parameters

T1
A Func<T1, T2, T3, TResult> parameter type.
T2
A Func<T1, T2, T3, TResult> parameter type.
T3
A Func<T1, T2, T3, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, T3, TResult> to curry.
value1
A value of type T1 to fix.

⊟ Returns

Returns a Func<T2, T3, TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,T3,TResult> Generic Method

Creates a Func<T3, TResult> delegate.

public static Func<T3, TResult> Curry<T1, T2, T3, TResult> (this Func<T1, T2, T3, TResult> self, T1 value1, T2 value2)

⊟ Type Parameters

T1
A Func<T1, T2, T3, TResult> parameter type.
T2
A Func<T1, T2, T3, TResult> parameter type.
T3
A Func<T1, T2, T3, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, T3, TResult> to curry.
value1
A value of type T1 to fix.
value2
A value of type T2 to fix.

⊟ Returns

Returns a Func<T3, TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,T3,TResult> Generic Method

Creates a Func<TResult> delegate.

public static Func<TResult> Curry<T1, T2, T3, TResult> (this Func<T1, T2, T3, TResult> self, T1 value1, T2 value2, T3 value3)

⊟ Type Parameters

T1
A Func<T1, T2, T3, TResult> parameter type.
T2
A Func<T1, T2, T3, TResult> parameter type.
T3
A Func<T1, T2, T3, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, T3, TResult> to curry.
value1
A value of type T1 to fix.
value2
A value of type T2 to fix.
value3
A value of type T3 to fix.

⊟ Returns

Returns a Func<TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,T3,T4,TResult> Generic Method

Creates a Func<T1, Func<T2, Func<T3, Func<T4, TResult>>>> for currying.

public static Func<T1, Func<T2, Func<T3, Func<T4, TResult>>>> Curry<T1, T2, T3, T4, TResult> (this Func<T1, T2, T3, T4, TResult> self)

⊟ Type Parameters

T1
The first value type.
T2
The second value type.
T3
The third value type.
T4
The fourth value type.
TResult
The return value type.

⊟ Parameters

self
The Func<T1, T2, T3, T4, TResult> to curry.

⊟ Returns

A Func<T1, Func<T2, Func<T3, Func<T4, TResult>>>> which, when invoked, will return a Func<T2, Func<T3, Func<T4, TResult>>> which, when invoked, will return a Func<T3, Func<T4, TResult>> which, when invoked, will return a Func<T4, TResult> which, when invoked, will invoke self.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

This is the more "traditional" view of currying, turning a method which takes (X * Y)->Z (i.e. separate arguments) into a X -> (Y -> Z) (that is a "chain" of nested Funcs such that you provide only one argument to each Func until you provide enough arguments to invoke the original method).

C# Example
            Func<int,int,int,int> function = (int a, int b, int c) => a + b + c;
            Func<int,Func<int,Func<int, int>>> curry = function.Curry ();
            Assert.AreEqual(6, curry (3)(2)(1));

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,T3,T4,TResult> Generic Method

Creates a Func<TResult> delegate.

public static Func<TResult> Curry<T1, T2, T3, T4, TResult> (this Func<T1, T2, T3, T4, TResult> self, Tuple<T1, T2, T3, T4> values)

⊟ Type Parameters

T1
A Func<T1, T2, T3, T4, TResult> parameter type.
T2
A Func<T1, T2, T3, T4, TResult> parameter type.
T3
A Func<T1, T2, T3, T4, TResult> parameter type.
T4
A Func<T1, T2, T3, T4, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, T3, T4, TResult> to curry.
values
A value of type Cadenza.Tuple<T1, T2, T3, T4> which contains the values to fix.

⊟ Returns

Returns a Func<TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,T3,T4,TResult> Generic Method

Creates a Func<T4, TResult> delegate.

public static Func<T4, TResult> Curry<T1, T2, T3, T4, TResult> (this Func<T1, T2, T3, T4, TResult> self, Tuple<T1, T2, T3> values)

⊟ Type Parameters

T1
A Func<T1, T2, T3, T4, TResult> parameter type.
T2
A Func<T1, T2, T3, T4, TResult> parameter type.
T3
A Func<T1, T2, T3, T4, TResult> parameter type.
T4
A Func<T1, T2, T3, T4, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, T3, T4, TResult> to curry.
values
A value of type Cadenza.Tuple<T1, T2, T3> which contains the values to fix.

⊟ Returns

Returns a Func<T4, TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,T3,T4,TResult> Generic Method

Creates a Func<T3, T4, TResult> delegate.

public static Func<T3, T4, TResult> Curry<T1, T2, T3, T4, TResult> (this Func<T1, T2, T3, T4, TResult> self, Tuple<T1, T2> values)

⊟ Type Parameters

T1
A Func<T1, T2, T3, T4, TResult> parameter type.
T2
A Func<T1, T2, T3, T4, TResult> parameter type.
T3
A Func<T1, T2, T3, T4, TResult> parameter type.
T4
A Func<T1, T2, T3, T4, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, T3, T4, TResult> to curry.
values
A value of type Cadenza.Tuple<T1, T2> which contains the values to fix.

⊟ Returns

Returns a Func<T3, T4, TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,T3,T4,TResult> Generic Method

Creates a Func<T2, T3, T4, TResult> delegate.

public static Func<T2, T3, T4, TResult> Curry<T1, T2, T3, T4, TResult> (this Func<T1, T2, T3, T4, TResult> self, Tuple<T1> values)

⊟ Type Parameters

T1
A Func<T1, T2, T3, T4, TResult> parameter type.
T2
A Func<T1, T2, T3, T4, TResult> parameter type.
T3
A Func<T1, T2, T3, T4, TResult> parameter type.
T4
A Func<T1, T2, T3, T4, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, T3, T4, TResult> to curry.
values
A value of type Cadenza.Tuple<T1> which contains the values to fix.

⊟ Returns

Returns a Func<T2, T3, T4, TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,T3,T4,TResult> Generic Method

Creates a Func<T2, T3, T4, TResult> delegate.

public static Func<T2, T3, T4, TResult> Curry<T1, T2, T3, T4, TResult> (this Func<T1, T2, T3, T4, TResult> self, T1 value1)

⊟ Type Parameters

T1
A Func<T1, T2, T3, T4, TResult> parameter type.
T2
A Func<T1, T2, T3, T4, TResult> parameter type.
T3
A Func<T1, T2, T3, T4, TResult> parameter type.
T4
A Func<T1, T2, T3, T4, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, T3, T4, TResult> to curry.
value1
A value of type T1 to fix.

⊟ Returns

Returns a Func<T2, T3, T4, TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,T3,T4,TResult> Generic Method

Creates a Func<T3, T4, TResult> delegate.

public static Func<T3, T4, TResult> Curry<T1, T2, T3, T4, TResult> (this Func<T1, T2, T3, T4, TResult> self, T1 value1, T2 value2)

⊟ Type Parameters

T1
A Func<T1, T2, T3, T4, TResult> parameter type.
T2
A Func<T1, T2, T3, T4, TResult> parameter type.
T3
A Func<T1, T2, T3, T4, TResult> parameter type.
T4
A Func<T1, T2, T3, T4, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, T3, T4, TResult> to curry.
value1
A value of type T1 to fix.
value2
A value of type T2 to fix.

⊟ Returns

Returns a Func<T3, T4, TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,T3,T4,TResult> Generic Method

Creates a Func<T4, TResult> delegate.

public static Func<T4, TResult> Curry<T1, T2, T3, T4, TResult> (this Func<T1, T2, T3, T4, TResult> self, T1 value1, T2 value2, T3 value3)

⊟ Type Parameters

T1
A Func<T1, T2, T3, T4, TResult> parameter type.
T2
A Func<T1, T2, T3, T4, TResult> parameter type.
T3
A Func<T1, T2, T3, T4, TResult> parameter type.
T4
A Func<T1, T2, T3, T4, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, T3, T4, TResult> to curry.
value1
A value of type T1 to fix.
value2
A value of type T2 to fix.
value3
A value of type T3 to fix.

⊟ Returns

Returns a Func<T4, TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0

⊟ Curry<T1,T2,T3,T4,TResult> Generic Method

Creates a Func<TResult> delegate.

public static Func<TResult> Curry<T1, T2, T3, T4, TResult> (this Func<T1, T2, T3, T4, TResult> self, T1 value1, T2 value2, T3 value3, T4 value4)

⊟ Type Parameters

T1
A Func<T1, T2, T3, T4, TResult> parameter type.
T2
A Func<T1, T2, T3, T4, TResult> parameter type.
T3
A Func<T1, T2, T3, T4, TResult> parameter type.
T4
A Func<T1, T2, T3, T4, TResult> parameter type.
TResult
Documentation for this section has not yet been entered.

⊟ Parameters

self
The Func<T1, T2, T3, T4, TResult> to curry.
value1
A value of type T1 to fix.
value2
A value of type T2 to fix.
value3
A value of type T3 to fix.
value4
A value of type T4 to fix.

⊟ Returns

Returns a Func<TResult> which, when invoked, will invoke self along with the provided fixed parameters.

⊟ Exceptions

Type Reason
ArgumentNullException if self is null.

⊟ Remarks

Documentation for this section has not yet been entered.

⊟ Requirements

Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0