Cadenza : Cadenza Namespace

Lambda Class

Provides static utility methods to generate anonymous delegates or expression trees of pre-determined types.

public static class Lambda

Remarks

C# lambda methods and anonymous delegates are a curious 1.5-class citizen: They are implicitly convertable to any delegate type, but have no type by themselves. Thus, the following code fails to compile:

C# Example
            ((int x) => Console.WriteLine (x))(5);
            

It would instead need:

C# Example
            // either:
            Action<int> a = x => Console.WriteLine (x);
            a (5);
            //
            // or
            //
            ((Action<int>) (x => Console.WriteLine (x)))(5);
            

So you'd either need to assign the lambda to an actual delegate type, or insert a cast.

Lambda.A allows you to provide a lambda body for the Action builtin delegate type, and Lambda.F allows you to provide a lambda body for the Func<TResult> delegate type, thus removing the need for a cast or an extra variable:

C# Example
            Lambda.F ((int x) => Console.WriteLine (x)) (5);

Cadenza.Lambda provides the following sets of functionality:

Requirements

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

Members

See Also: Inherited members from object.

Public Methods

static
A (Action) : Action
Creates a Action delegate.
static
A<T> (Action<T>) : Action<T>
Creates a Action<T> delegate.
static
A<T1,T2> (Action<T1, T2>) : Action<T1, T2>
Creates a Action<T1, T2> delegate.
static
A<T1,T2,T3> (Action<T1, T2, T3>) : Action<T1, T2, T3>
Creates a Action<T1, T2, T3> delegate.
static
A<T1,T2,T3,T4> (Action<T1, T2, T3, T4>) : Action<T1, T2, T3, T4>
Creates a Action<T1, T2, T3, T4> delegate.
static
F<TResult> (Func<TResult>) : Func<TResult>
Creates a Func<TResult> delegate.
static
F<T,TResult> (Func<T, TResult>) : Func<T, TResult>
Creates a Func<T, TResult> delegate.
static
F<T1,T2,TResult> (Func<T1, T2, TResult>) : Func<T1, T2, TResult>
Creates a Func<T1, T2, TResult> delegate.
static
F<T1,T2,T3,TResult> (Func<T1, T2, T3, TResult>) : Func<T1, T2, T3, TResult>
Creates a Func<T1, T2, T3, TResult> delegate.
static
F<T1,T2,T3,T4,TResult> (Func<T1, T2, T3, T4, TResult>) : Func<T1, T2, T3, T4, TResult>
Creates a Func<T1, T2, T3, T4, TResult> delegate.
static
RecFunc<T,TResult> (Func<Func<T, TResult>, Func<T, TResult>>) : Func<T, TResult>
Creates a Func<T, TResult> delegate, which may be recursive.
static
RecFunc<T1,T2,TResult> (Func<Func<T1, T2, TResult>, Func<T1, T2, TResult>>) : Func<T1, T2, TResult>
Creates a Func<T1, T2, TResult> delegate, which may be recursive.
static
RecFunc<T1,T2,T3,TResult> (Func<Func<T1, T2, T3, TResult>, Func<T1, T2, T3, TResult>>) : Func<T1, T2, T3, TResult>
Creates a Func<T1, T2, T3, TResult> delegate, which may be recursive.
static
RecFunc<T1,T2,T3,T4,TResult> (Func<Func<T1, T2, T3, T4, TResult>, Func<T1, T2, T3, T4, TResult>>) : Func<T1, T2, T3, T4, TResult>
Creates a Func<T1, T2, T3, T4, TResult> delegate, which may be recursive.
static
XA (System.Linq.Expressions.Expression<Action>) : System.Linq.Expressions.Expression<Action>
Creates a System.Linq.Expressions.Expression<Action> expression tree.
static
XA<T> (System.Linq.Expressions.Expression<Action<T>>) : System.Linq.Expressions.Expression<Action<T>>
Creates a System.Linq.Expressions.Expression<Action<T>> expression tree.
static
XA<T1,T2> (System.Linq.Expressions.Expression<Action<T1, T2>>) : System.Linq.Expressions.Expression<Action<T1, T2>>
Creates a System.Linq.Expressions.Expression<Action<T1, T2>> expression tree.
static
XA<T1,T2,T3> (System.Linq.Expressions.Expression<Action<T1, T2, T3>>) : System.Linq.Expressions.Expression<Action<T1, T2, T3>>
Creates a System.Linq.Expressions.Expression<Action<T1, T2, T3>> expression tree.
static
XA<T1,T2,T3,T4> (System.Linq.Expressions.Expression<Action<T1, T2, T3, T4>>) : System.Linq.Expressions.Expression<Action<T1, T2, T3, T4>>
Creates a System.Linq.Expressions.Expression<Action<T1, T2, T3, T4>> expression tree.
static
XF<TResult> (System.Linq.Expressions.Expression<Func<TResult>>) : System.Linq.Expressions.Expression<Func<TResult>>
Creates a System.Linq.Expressions.Expression<Func<TResult>> expression tree.
static
XF<T,TResult> (System.Linq.Expressions.Expression<Func<T, TResult>>) : System.Linq.Expressions.Expression<Func<T, TResult>>
Creates a System.Linq.Expressions.Expression<Func<T, TResult>> expression tree.
static
XF<T1,T2,TResult> (System.Linq.Expressions.Expression<Func<T1, T2, TResult>>) : System.Linq.Expressions.Expression<Func<T1, T2, TResult>>
Creates a System.Linq.Expressions.Expression<Func<T1, T2, TResult>> expression tree.
static
XF<T1,T2,T3,TResult> (System.Linq.Expressions.Expression<Func<T1, T2, T3, TResult>>) : System.Linq.Expressions.Expression<Func<T1, T2, T3, TResult>>
Creates a System.Linq.Expressions.Expression<Func<T1, T2, T3, TResult>> expression tree.
static
XF<T1,T2,T3,T4,TResult> (System.Linq.Expressions.Expression<Func<T1, T2, T3, T4, TResult>>) : System.Linq.Expressions.Expression<Func<T1, T2, T3, T4, TResult>>
Creates a System.Linq.Expressions.Expression<Func<T1, T2, T3, T4, TResult>> expression tree.

Member Details

A Method

Creates a Action delegate.

public static Action A (Action lambda)

Parameters

lambda
The Action to return.

Returns

Returns lambda.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

A<T> Generic Method

Creates a Action<T> delegate.

public static Action<T> A<T> (Action<T> lambda)

Type Parameters

T
A Action<T> parameter type.

Parameters

lambda
The Action<T> to return.

Returns

Returns lambda.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

A<T1,T2> Generic Method

Creates a Action<T1, T2> delegate.

public static Action<T1, T2> A<T1, T2> (Action<T1, T2> lambda)

Type Parameters

T1
A Action<T1, T2> parameter type.
T2
A Action<T1, T2> parameter type.

Parameters

lambda
The Action<T1, T2> to return.

Returns

Returns lambda.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

A<T1,T2,T3> Generic Method

Creates a Action<T1, T2, T3> delegate.

public static Action<T1, T2, T3> A<T1, T2, T3> (Action<T1, T2, T3> lambda)

Type Parameters

T1
A Action<T1, T2, T3> parameter type.
T2
A Action<T1, T2, T3> parameter type.
T3
A Action<T1, T2, T3> parameter type.

Parameters

lambda
The Action<T1, T2, T3> to return.

Returns

Returns lambda.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

A<T1,T2,T3,T4> Generic Method

Creates a Action<T1, T2, T3, T4> delegate.

public static Action<T1, T2, T3, T4> A<T1, T2, T3, T4> (Action<T1, T2, T3, T4> lambda)

Type Parameters

T1
A Action<T1, T2, T3, T4> parameter type.
T2
A Action<T1, T2, T3, T4> parameter type.
T3
A Action<T1, T2, T3, T4> parameter type.
T4
A Action<T1, T2, T3, T4> parameter type.

Parameters

lambda
The Action<T1, T2, T3, T4> to return.

Returns

Returns lambda.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

F<TResult> Generic Method

Creates a Func<TResult> delegate.

public static Func<TResult> F<TResult> (Func<TResult> lambda)

Type Parameters

TResult
A Func<TResult> return type.

Parameters

lambda
The Func<TResult> to return.

Returns

Returns lambda.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

F<T,TResult> Generic Method

Creates a Func<T, TResult> delegate.

public static Func<T, TResult> F<T, TResult> (Func<T, TResult> lambda)

Type Parameters

T
A Func<T, TResult> parameter type.
TResult
A Func<T, TResult> return type.

Parameters

lambda
The Func<T, TResult> to return.

Returns

Returns lambda.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

F<T1,T2,TResult> Generic Method

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

public static Func<T1, T2, TResult> F<T1, T2, TResult> (Func<T1, T2, TResult> lambda)

Type Parameters

T1
A Func<T1, T2, TResult> parameter type.
T2
A Func<T1, T2, TResult> parameter type.
TResult
A Func<T1, T2, TResult> return type.

Parameters

lambda
The Func<T1, T2, TResult> to return.

Returns

Returns lambda.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

F<T1,T2,T3,TResult> Generic Method

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

public static Func<T1, T2, T3, TResult> F<T1, T2, T3, TResult> (Func<T1, T2, T3, TResult> lambda)

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
A Func<T1, T2, T3, TResult> return type.

Parameters

lambda
The Func<T1, T2, T3, TResult> to return.

Returns

Returns lambda.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

F<T1,T2,T3,T4,TResult> Generic Method

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

public static Func<T1, T2, T3, T4, TResult> F<T1, T2, T3, T4, TResult> (Func<T1, T2, T3, T4, TResult> lambda)

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
A Func<T1, T2, T3, T4, TResult> return type.

Parameters

lambda
The Func<T1, T2, T3, T4, TResult> to return.

Returns

Returns lambda.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

RecFunc<T,TResult> Generic Method

Creates a Func<T, TResult> delegate, which may be recursive.

public static Func<T, TResult> RecFunc<T, TResult> (Func<Func<T, TResult>, Func<T, TResult>> lambda)

Type Parameters

T
A Func<T, TResult> parameter type.
TResult
A Func<T, TResult> return type.

Parameters

lambda
The Func<T, TResult> to use.

Returns

Returns a Func<T, TResult> which (eventually) invokes lambda.

Exceptions

Type Reason
ArgumentNullException if lambda is null.

Remarks

The following example makes use of a recursive lambda:

C# Example
            Func<int, int> factorial = Lambda.RecFunc<int, int> (
            fac => x => x == 0 ? 1 : x * fac (x-1));
            Console.WriteLine (factorial (5));  // prints "120"
            

Requirements

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

RecFunc<T1,T2,TResult> Generic Method

Creates a Func<T1, T2, TResult> delegate, which may be recursive.

public static Func<T1, T2, TResult> RecFunc<T1, T2, TResult> (Func<Func<T1, T2, TResult>, Func<T1, T2, TResult>> lambda)

Type Parameters

T1
A Func<T1, T2, TResult> parameter type.
T2
A Func<T1, T2, TResult> parameter type.
TResult
A Func<T1, T2, TResult> return type.

Parameters

lambda
The Func<T1, T2, TResult> to use.

Returns

Returns a Func<T1, T2, TResult> which (eventually) invokes lambda.

Exceptions

Type Reason
ArgumentNullException if lambda is null.

Remarks

The following example makes use of a recursive lambda:

C# Example
            Func<int, int> factorial = Lambda.RecFunc<int, int> (
            fac => x => x == 0 ? 1 : x * fac (x-1));
            Console.WriteLine (factorial (5));  // prints "120"
            

Requirements

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

RecFunc<T1,T2,T3,TResult> Generic Method

Creates a Func<T1, T2, T3, TResult> delegate, which may be recursive.

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
A Func<T1, T2, T3, TResult> return type.

Parameters

lambda
The Func<T1, T2, T3, TResult> to use.

Returns

Returns a Func<T1, T2, T3, TResult> which (eventually) invokes lambda.

Exceptions

Type Reason
ArgumentNullException if lambda is null.

Remarks

The following example makes use of a recursive lambda:

C# Example
            Func<int, int> factorial = Lambda.RecFunc<int, int> (
            fac => x => x == 0 ? 1 : x * fac (x-1));
            Console.WriteLine (factorial (5));  // prints "120"
            

Requirements

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

RecFunc<T1,T2,T3,T4,TResult> Generic Method

Creates a Func<T1, T2, T3, T4, TResult> delegate, which may be recursive.

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
A Func<T1, T2, T3, T4, TResult> return type.

Parameters

lambda
The Func<T1, T2, T3, T4, TResult> to use.

Returns

Returns a Func<T1, T2, T3, T4, TResult> which (eventually) invokes lambda.

Exceptions

Type Reason
ArgumentNullException if lambda is null.

Remarks

The following example makes use of a recursive lambda:

C# Example
            Func<int, int> factorial = Lambda.RecFunc<int, int> (
            fac => x => x == 0 ? 1 : x * fac (x-1));
            Console.WriteLine (factorial (5));  // prints "120"
            

Requirements

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

XA Method

Creates a System.Linq.Expressions.Expression<Action> expression tree.

Parameters

expr
The System.Linq.Expressions.Expression<Action> to return.

Returns

Returns expr.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

XA<T> Generic Method

Creates a System.Linq.Expressions.Expression<Action<T>> expression tree.

Type Parameters

T
A System.Linq.Expressions.Expression<Action<T>> parameter type.

Parameters

expr
The System.Linq.Expressions.Expression<Action<T>> to return.

Returns

Returns expr.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

XA<T1,T2> Generic Method

Creates a System.Linq.Expressions.Expression<Action<T1, T2>> expression tree.

Type Parameters

T1
A System.Linq.Expressions.Expression<Action<T1, T2>> parameter type.
T2
A System.Linq.Expressions.Expression<Action<T1, T2>> parameter type.

Parameters

expr
The System.Linq.Expressions.Expression<Action<T1, T2>> to return.

Returns

Returns expr.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

XA<T1,T2,T3> Generic Method

Creates a System.Linq.Expressions.Expression<Action<T1, T2, T3>> expression tree.

Type Parameters

T1
A System.Linq.Expressions.Expression<Action<T1, T2, T3>> parameter type.
T2
A System.Linq.Expressions.Expression<Action<T1, T2, T3>> parameter type.
T3
A System.Linq.Expressions.Expression<Action<T1, T2, T3>> parameter type.

Parameters

expr
The System.Linq.Expressions.Expression<Action<T1, T2, T3>> to return.

Returns

Returns expr.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

XA<T1,T2,T3,T4> Generic Method

Creates a System.Linq.Expressions.Expression<Action<T1, T2, T3, T4>> expression tree.

Type Parameters

T1
A System.Linq.Expressions.Expression<Action<T1, T2, T3, T4>> parameter type.
T2
A System.Linq.Expressions.Expression<Action<T1, T2, T3, T4>> parameter type.
T3
A System.Linq.Expressions.Expression<Action<T1, T2, T3, T4>> parameter type.
T4
A System.Linq.Expressions.Expression<Action<T1, T2, T3, T4>> parameter type.

Parameters

expr
The System.Linq.Expressions.Expression<Action<T1, T2, T3, T4>> to return.

Returns

Returns expr.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

XF<TResult> Generic Method

Creates a System.Linq.Expressions.Expression<Func<TResult>> expression tree.

Type Parameters

TResult
The System.Linq.Expressions.Expression<Func<TResult>> return type.

Parameters

expr
The System.Linq.Expressions.Expression<Func<TResult>> to return.

Returns

Returns expr.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

XF<T,TResult> Generic Method

Creates a System.Linq.Expressions.Expression<Func<T, TResult>> expression tree.

Type Parameters

T
A System.Linq.Expressions.Expression<Func<T, TResult>> parameter type.
TResult
A System.Linq.Expressions.Expression<Func<T, TResult>> return type.

Parameters

expr
The System.Linq.Expressions.Expression<Func<T, TResult>> to return.

Returns

Returns expr.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

XF<T1,T2,TResult> Generic Method

Creates a System.Linq.Expressions.Expression<Func<T1, T2, TResult>> expression tree.

Type Parameters

T1
A System.Linq.Expressions.Expression<Func<T1, T2, TResult>> parameter type.
T2
A System.Linq.Expressions.Expression<Func<T1, T2, TResult>> parameter type.
TResult
A System.Linq.Expressions.Expression<Func<T1, T2, TResult>> return type.

Parameters

expr
The System.Linq.Expressions.Expression<Func<T1, T2, TResult>> to return.

Returns

Returns expr.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

XF<T1,T2,T3,TResult> Generic Method

Creates a System.Linq.Expressions.Expression<Func<T1, T2, T3, TResult>> expression tree.

Type Parameters

T1
A System.Linq.Expressions.Expression<Func<T1, T2, T3, TResult>> parameter type.
T2
A System.Linq.Expressions.Expression<Func<T1, T2, T3, TResult>> parameter type.
T3
A System.Linq.Expressions.Expression<Func<T1, T2, T3, TResult>> parameter type.
TResult
A System.Linq.Expressions.Expression<Func<T1, T2, T3, TResult>> return type.

Parameters

expr
The System.Linq.Expressions.Expression<Func<T1, T2, T3, TResult>> to return.

Returns

Returns expr.

Remarks

Documentation for this section has not yet been entered.

Requirements

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

XF<T1,T2,T3,T4,TResult> Generic Method

Creates a System.Linq.Expressions.Expression<Func<T1, T2, T3, T4, TResult>> expression tree.

Type Parameters

T1
A System.Linq.Expressions.Expression<Func<T1, T2, T3, T4, TResult>> parameter type.
T2
A System.Linq.Expressions.Expression<Func<T1, T2, T3, T4, TResult>> parameter type.
T3
A System.Linq.Expressions.Expression<Func<T1, T2, T3, T4, TResult>> parameter type.
T4
A System.Linq.Expressions.Expression<Func<T1, T2, T3, T4, TResult>> parameter type.
TResult
A System.Linq.Expressions.Expression<Func<T1, T2, T3, T4, TResult>> return type.

Parameters

expr
The System.Linq.Expressions.Expression<Func<T1, T2, T3, T4, TResult>> to return.

Returns

Returns expr.

Remarks

Documentation for this section has not yet been entered.

Requirements

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