Provides static utility methods to generate anonymous delegates or expression trees of pre-determined types.
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:
- Delegate creation methods, which return Action-like delegates: Lambda.A(Action), Lambda.A``1(Action<``0>), Lambda.A``2(Action<``0, ``1>), Lambda.A``3(Action<``0, ``1, ``2>), and Lambda.A``4(Action<``0, ``1, ``2, ``3>).
- Delegate creation methods which return return Func<TResult>-like delegates Lambda.F``1(Func<``0>), Lambda.F``2(Func<``0, ``1>), Lambda.F``3(Func<``0, ``1, ``2>), Lambda.F``4(Func<``0, ``1, ``2, ``3>), and Lambda.F``5(Func<``0, ``1, ``2, ``3, ``4>).
- System.Linq.Expressions.Expression-creating methods: Lambda.XA(System.Linq.Expressions.Expression<Action>), Lambda.XA``1(System.Linq.Expressions.Expression<Action<``0>>), Lambda.XA``2(System.Linq.Expressions.Expression<Action<``0, ``1>>), Lambda.XA``3(System.Linq.Expressions.Expression<Action<``0, ``1, ``2>>), Lambda.XA``4(System.Linq.Expressions.Expression<Action<``0, ``1, ``2, ``3>>), and Lambda.XF``1(System.Linq.Expressions.Expression<Func<``0>>), Lambda.XF``2(System.Linq.Expressions.Expression<Func<``0, ``1>>), Lambda.XF``3(System.Linq.Expressions.Expression<Func<``0, ``1, ``2>>), Lambda.XF``4(System.Linq.Expressions.Expression<Func<``0, ``1, ``2, ``3>>), Lambda.XF``5(System.Linq.Expressions.Expression<Func<``0, ``1, ``2, ``3, ``4>>).
- Y-Combinators, which permit writing recursive lambdas: Lambda.RecFunc``2(Func<Func<``0, ``1>, Func<``0, ``1>>), Lambda.RecFunc``3(Func<Func<``0, ``1, ``2>, Func<``0, ``1, ``2>>), Lambda.RecFunc``4(Func<Func<``0, ``1, ``2, ``3>, Func<``0, ``1, ``2, ``3>>), and Lambda.RecFunc``5(Func<Func<``0, ``1, ``2, ``3, ``4>, Func<``0, ``1, ``2, ``3, ``4>>).
Namespace: Cadenza
Assembly: Cadenza (in Cadenza.dll)
Assembly Versions: 0.1.0.0
See Also: Inherited members from object.
⊟ Public Methods
⊟ A Method
Creates a Action delegate.
⊟ 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.
⊟ 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.
public static Func<T1, T2, T3, TResult> RecFunc<T1, T2, T3, TResult> (Func<Func<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 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.
public static Func<T1, T2, T3, T4, TResult> RecFunc<T1, T2, T3, T4, TResult> (Func<Func<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 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.
public static System.Linq.Expressions.Expression<Action> XA (System.Linq.Expressions.Expression<Action> expr)⊟ 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.
public static System.Linq.Expressions.Expression<Action<T>> XA<T> (System.Linq.Expressions.Expression<Action<T>> expr)⊟ 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.
public static System.Linq.Expressions.Expression<Action<T1, T2>> XA<T1, T2> (System.Linq.Expressions.Expression<Action<T1, T2>> expr)⊟ 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.
public static System.Linq.Expressions.Expression<Action<T1, T2, T3>> XA<T1, T2, T3> (System.Linq.Expressions.Expression<Action<T1, T2, T3>> expr)⊟ 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.
public static System.Linq.Expressions.Expression<Action<T1, T2, T3, T4>> XA<T1, T2, T3, T4> (System.Linq.Expressions.Expression<Action<T1, T2, T3, T4>> expr)⊟ 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.
public static System.Linq.Expressions.Expression<Func<TResult>> XF<TResult> (System.Linq.Expressions.Expression<Func<TResult>> expr)⊟ 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.
public static System.Linq.Expressions.Expression<Func<T, TResult>> XF<T, TResult> (System.Linq.Expressions.Expression<Func<T, TResult>> expr)⊟ 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.
public static System.Linq.Expressions.Expression<Func<T1, T2, TResult>> XF<T1, T2, TResult> (System.Linq.Expressions.Expression<Func<T1, T2, TResult>> expr)⊟ 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.
public static System.Linq.Expressions.Expression<Func<T1, T2, T3, TResult>> XF<T1, T2, T3, TResult> (System.Linq.Expressions.Expression<Func<T1, T2, T3, TResult>> expr)⊟ 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.
public static System.Linq.Expressions.Expression<Func<T1, T2, T3, T4, TResult>> XF<T1, T2, T3, T4, TResult> (System.Linq.Expressions.Expression<Func<T1, T2, T3, T4, TResult>> expr)⊟ 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