Currying 2.0.0

dotnet add package Currying --version 2.0.0
                    
NuGet\Install-Package Currying -Version 2.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Currying" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Currying" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Currying" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Currying --version 2.0.0
                    
#r "nuget: Currying, 2.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Currying@2.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Currying&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Currying&version=2.0.0
                    
Install as a Cake Tool
Currying

Currying Assembly

Namespaces

<a name='Currying'></a>

Currying Namespace

Classes

<a name='Currying.Extensions'></a>

Extensions Class

Provides a set of functional-style extension helpers for piping values through functions, cloning by MemberwiseClone, and iterating collections with actions.

public static class Extensions

Inheritance System.Object 🡒 Extensions

Methods

<a name='Currying.Extensions.Clone_T_(thisT)'></a>

Extensions.Clone<T>(this T) Method

Creates a shallow copy of the current instance by invoking the protected MemberwiseClone method via reflection.

public static T? Clone<T>(this T obj);
Type parameters

<a name='Currying.Extensions.Clone_T_(thisT).T'></a>

T

Parameters

<a name='Currying.Extensions.Clone_T_(thisT).obj'></a>

obj T

Returns

T
A shallow copy of the current object as T, or default if the clone operation is not available.

<a name='Currying.Extensions.ForEach_T_(thisSystem.Collections.Generic.IEnumerable_T_,System.Action_T_)'></a>

Extensions.ForEach<T>(this IEnumerable<T>, Action<T>) Method

Applies action to each element in collection.

public static void ForEach<T>(this System.Collections.Generic.IEnumerable<T> collection, System.Action<T> action);
Type parameters

<a name='Currying.Extensions.ForEach_T_(thisSystem.Collections.Generic.IEnumerable_T_,System.Action_T_).T'></a>

T

Parameters

<a name='Currying.Extensions.ForEach_T_(thisSystem.Collections.Generic.IEnumerable_T_,System.Action_T_).collection'></a>

collection System.Collections.Generic.IEnumerable<T>

<a name='Currying.Extensions.ForEach_T_(thisSystem.Collections.Generic.IEnumerable_T_,System.Action_T_).action'></a>

action System.Action<T>

The action to execute for each element.

<a name='Currying.Extensions.op_RightShift_TSource,TIntermediate,TResult_(System.Func_TSource,TIntermediate_,System.Func_TIntermediate,TResult_)'></a>

Extensions.op_RightShift<TSource,TIntermediate,TResult>(Func<TSource,TIntermediate>, Func<TIntermediate,TResult>) Method

Enables function composition using the right-shift operator: f1 >> f2 is equivalent to x => f2(f1(x)).

public static System.Func<TSource,TResult> op_RightShift<TSource,TIntermediate,TResult>(System.Func<TSource,TIntermediate> f1, System.Func<TIntermediate,TResult> f2);
Type parameters

<a name='Currying.Extensions.op_RightShift_TSource,TIntermediate,TResult_(System.Func_TSource,TIntermediate_,System.Func_TIntermediate,TResult_).TSource'></a>

TSource

<a name='Currying.Extensions.op_RightShift_TSource,TIntermediate,TResult_(System.Func_TSource,TIntermediate_,System.Func_TIntermediate,TResult_).TIntermediate'></a>

TIntermediate

<a name='Currying.Extensions.op_RightShift_TSource,TIntermediate,TResult_(System.Func_TSource,TIntermediate_,System.Func_TIntermediate,TResult_).TResult'></a>

TResult

Parameters

<a name='Currying.Extensions.op_RightShift_TSource,TIntermediate,TResult_(System.Func_TSource,TIntermediate_,System.Func_TIntermediate,TResult_).f1'></a>

f1 System.Func<TSource,TIntermediate>

<a name='Currying.Extensions.op_RightShift_TSource,TIntermediate,TResult_(System.Func_TSource,TIntermediate_,System.Func_TIntermediate,TResult_).f2'></a>

f2 System.Func<TIntermediate,TResult>

Returns

System.Func<TSource,TResult>

<a name='Currying.Extensions.op_RightShift_TSource,TResult_(System.Func_TSource,TResult_,TSource)'></a>

Extensions.op_RightShift<TSource,TResult>(Func<TSource,TResult>, TSource) Method

Operator overload to support function-first pipe syntax: func >> arg.

public static TResult op_RightShift<TSource,TResult>(System.Func<TSource,TResult> f, TSource x);
Type parameters

<a name='Currying.Extensions.op_RightShift_TSource,TResult_(System.Func_TSource,TResult_,TSource).TSource'></a>

TSource

<a name='Currying.Extensions.op_RightShift_TSource,TResult_(System.Func_TSource,TResult_,TSource).TResult'></a>

TResult

Parameters

<a name='Currying.Extensions.op_RightShift_TSource,TResult_(System.Func_TSource,TResult_,TSource).f'></a>

f System.Func<TSource,TResult>

<a name='Currying.Extensions.op_RightShift_TSource,TResult_(System.Func_TSource,TResult_,TSource).x'></a>

x TSource

Returns

TResult
The result of invoking f with x.

<a name='Currying.Extensions.op_RightShift_TSource,TResult_(System.Func_TSource_,System.Func_TSource,TResult_)'></a>

Extensions.op_RightShift<TSource,TResult>(Func<TSource>, Func<TSource,TResult>) Method

Enables function composition using the right-shift operator: f1 >> f2 is equivalent to () => f2(f1()).

public static System.Func<TResult> op_RightShift<TSource,TResult>(System.Func<TSource> f1, System.Func<TSource,TResult> f2);
Type parameters

<a name='Currying.Extensions.op_RightShift_TSource,TResult_(System.Func_TSource_,System.Func_TSource,TResult_).TSource'></a>

TSource

<a name='Currying.Extensions.op_RightShift_TSource,TResult_(System.Func_TSource_,System.Func_TSource,TResult_).TResult'></a>

TResult

Parameters

<a name='Currying.Extensions.op_RightShift_TSource,TResult_(System.Func_TSource_,System.Func_TSource,TResult_).f1'></a>

f1 System.Func<TSource>

<a name='Currying.Extensions.op_RightShift_TSource,TResult_(System.Func_TSource_,System.Func_TSource,TResult_).f2'></a>

f2 System.Func<TSource,TResult>

Returns

System.Func<TResult>

<a name='Currying.Extensions.op_RightShift_TSource,TResult_(TSource,System.Func_TSource,TResult_)'></a>

Extensions.op_RightShift<TSource,TResult>(TSource, Func<TSource,TResult>) Method

Applies g to arg and returns the result. This allows using the operator form: value >> func.

public static TResult op_RightShift<TSource,TResult>(TSource arg, System.Func<TSource,TResult> g);
Type parameters

<a name='Currying.Extensions.op_RightShift_TSource,TResult_(TSource,System.Func_TSource,TResult_).TSource'></a>

TSource

<a name='Currying.Extensions.op_RightShift_TSource,TResult_(TSource,System.Func_TSource,TResult_).TResult'></a>

TResult

Parameters

<a name='Currying.Extensions.op_RightShift_TSource,TResult_(TSource,System.Func_TSource,TResult_).arg'></a>

arg TSource

The input value.

<a name='Currying.Extensions.op_RightShift_TSource,TResult_(TSource,System.Func_TSource,TResult_).g'></a>

g System.Func<TSource,TResult>

The function to apply.

Returns

TResult
The result of applying g to arg.

<a name='Currying.Extensions.Pipe_T,R_(thisT,System.Action_T,R_,R)'></a>

Extensions.Pipe<T,R>(this T, Action<T,R>, R) Method

Pipes the caller into a two-argument action along with an extra argument.

public static void Pipe<T,R>(this T caller, System.Action<T,R> act, R arg);
Type parameters

<a name='Currying.Extensions.Pipe_T,R_(thisT,System.Action_T,R_,R).T'></a>

T

<a name='Currying.Extensions.Pipe_T,R_(thisT,System.Action_T,R_,R).R'></a>

R

Type of the second argument accepted by act.

Parameters

<a name='Currying.Extensions.Pipe_T,R_(thisT,System.Action_T,R_,R).caller'></a>

caller T

<a name='Currying.Extensions.Pipe_T,R_(thisT,System.Action_T,R_,R).act'></a>

act System.Action<T,R>

The action to invoke with the caller and arg.

<a name='Currying.Extensions.Pipe_T,R_(thisT,System.Action_T,R_,R).arg'></a>

arg R

The additional argument passed to act.

<a name='Currying.Extensions.Pipe_T,R_(thisT,System.Func_T,R_)'></a>

Extensions.Pipe<T,R>(this T, Func<T,R>) Method

Pipes the caller through a function and returns the function result.

public static R Pipe<T,R>(this T caller, System.Func<T,R> f);
Type parameters

<a name='Currying.Extensions.Pipe_T,R_(thisT,System.Func_T,R_).T'></a>

T

<a name='Currying.Extensions.Pipe_T,R_(thisT,System.Func_T,R_).R'></a>

R

Return type of the function f.

Parameters

<a name='Currying.Extensions.Pipe_T,R_(thisT,System.Func_T,R_).caller'></a>

caller T

<a name='Currying.Extensions.Pipe_T,R_(thisT,System.Func_T,R_).f'></a>

f System.Func<T,R>

The function to apply to the caller.

Returns

R
The result of applying f to the caller.

<a name='Currying.Extensions.Pipe_T1,T2,R_(thisT1,System.Func_T1,T2,R_,T2)'></a>

Extensions.Pipe<T1,T2,R>(this T1, Func<T1,T2,R>, T2) Method

Applies a function that accepts the caller and an additional argument, returning the result.

public static R Pipe<T1,T2,R>(this T1 caller, System.Func<T1,T2,R> f, T2 arg);
Type parameters

<a name='Currying.Extensions.Pipe_T1,T2,R_(thisT1,System.Func_T1,T2,R_,T2).T1'></a>

T1

<a name='Currying.Extensions.Pipe_T1,T2,R_(thisT1,System.Func_T1,T2,R_,T2).T2'></a>

T2

Type of the additional argument.

<a name='Currying.Extensions.Pipe_T1,T2,R_(thisT1,System.Func_T1,T2,R_,T2).R'></a>

R

Return type of the function.

Parameters

<a name='Currying.Extensions.Pipe_T1,T2,R_(thisT1,System.Func_T1,T2,R_,T2).caller'></a>

caller T1

<a name='Currying.Extensions.Pipe_T1,T2,R_(thisT1,System.Func_T1,T2,R_,T2).f'></a>

f System.Func<T1,T2,R>

Function to apply.

<a name='Currying.Extensions.Pipe_T1,T2,R_(thisT1,System.Func_T1,T2,R_,T2).arg'></a>

arg T2

Additional argument passed to f.

Returns

R
The result of f invoked with caller and arg.

<a name='Currying.Extensions.Pipe_T_(thisT,bool,System.Func_T,T_[])'></a>

Extensions.Pipe<T>(this T, bool, Func<T,T>[]) Method

Pipes the caller through a sequence of transforming functions. When immutable is true, the first step clones the caller using Clone<T>(this T) and all functions operate on the cloned value.

public static T Pipe<T>(this T caller, bool immutable, params System.Func<T,T>[] functions);
Type parameters

<a name='Currying.Extensions.Pipe_T_(thisT,bool,System.Func_T,T_[]).T'></a>

T

Parameters

<a name='Currying.Extensions.Pipe_T_(thisT,bool,System.Func_T,T_[]).caller'></a>

caller T

<a name='Currying.Extensions.Pipe_T_(thisT,bool,System.Func_T,T_[]).immutable'></a>

immutable System.Boolean

If true, a shallow clone of the caller is created before applying the functions; otherwise the caller may be mutated by the functions.

<a name='Currying.Extensions.Pipe_T_(thisT,bool,System.Func_T,T_[]).functions'></a>

functions System.Func<T,T>[]

Sequence of functions that transform the value.

Returns

T
The final transformed value after applying all functions.

<a name='Currying.Extensions.Pipe_T_(thisT,System.Action_T_[])'></a>

Extensions.Pipe<T>(this T, Action<T>[]) Method

Pipes the caller into one or more System.Action<> delegates. Each action is invoked with the caller as its argument.

public static void Pipe<T>(this T caller, params System.Action<T>[] actions);
Type parameters

<a name='Currying.Extensions.Pipe_T_(thisT,System.Action_T_[]).T'></a>

T

Parameters

<a name='Currying.Extensions.Pipe_T_(thisT,System.Action_T_[]).caller'></a>

caller T

<a name='Currying.Extensions.Pipe_T_(thisT,System.Action_T_[]).actions'></a>

actions System.Action<T>[]

Actions to invoke with the caller.

<a name='Currying.Extensions.Pipe_T_(thisT,System.Func_T,T_[])'></a>

Extensions.Pipe<T>(this T, Func<T,T>[]) Method

Pipes the caller through a sequence of transforming functions (non-immutable overload).

public static T Pipe<T>(this T caller, params System.Func<T,T>[] functions);
Type parameters

<a name='Currying.Extensions.Pipe_T_(thisT,System.Func_T,T_[]).T'></a>

T

Parameters

<a name='Currying.Extensions.Pipe_T_(thisT,System.Func_T,T_[]).caller'></a>

caller T

<a name='Currying.Extensions.Pipe_T_(thisT,System.Func_T,T_[]).functions'></a>

functions System.Func<T,T>[]

Sequence of functions that transform the value.

Returns

T
The final transformed value after applying all functions.

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_'></a>

Extensions.<G>$8048A6C8BE30A622530249B904B537EB<$T0> Class

public sealed class Extensions.<G>$8048A6C8BE30A622530249B904B537EB<$T0>
Type parameters

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.$T0'></a>

$T0

Inheritance System.Object 🡒 <G>$8048A6C8BE30A622530249B904B537EB<$T0>

Methods

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Clone()'></a>

Extensions.<G>$8048A6C8BE30A622530249B904B537EB<$T0>.Clone() Method

Creates a shallow copy of the current instance by invoking the protected MemberwiseClone method via reflection.

public $T0? Clone();
Returns

$T0
A shallow copy of the current object as T, or default if the clone operation is not available.

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe(bool,System.Func_$T0,$T0_[])'></a>

Extensions.<G>$8048A6C8BE30A622530249B904B537EB<$T0>.Pipe(bool, Func<$T0,$T0>[]) Method

Pipes the caller through a sequence of transforming functions. When immutable is true, the first step clones the caller using Clone<T>(this T) and all functions operate on the cloned value.

public $T0 Pipe(bool immutable, params System.Func<$T0,$T0>[] functions);
Parameters

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe(bool,System.Func_$T0,$T0_[]).immutable'></a>

immutable System.Boolean

If true, a shallow clone of the caller is created before applying the functions; otherwise the caller may be mutated by the functions.

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe(bool,System.Func_$T0,$T0_[]).functions'></a>

functions System.Func<$T0,$T0>[]

Sequence of functions that transform the value.

Returns

$T0
The final transformed value after applying all functions.

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe(System.Action_$T0_[])'></a>

Extensions.<G>$8048A6C8BE30A622530249B904B537EB<$T0>.Pipe(Action<$T0>[]) Method

Pipes the caller into one or more System.Action<> delegates. Each action is invoked with the caller as its argument.

public void Pipe(params System.Action<$T0>[] actions);
Parameters

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe(System.Action_$T0_[]).actions'></a>

actions System.Action<$T0>[]

Actions to invoke with the caller.

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe(System.Func_$T0,$T0_[])'></a>

Extensions.<G>$8048A6C8BE30A622530249B904B537EB<$T0>.Pipe(Func<$T0,$T0>[]) Method

Pipes the caller through a sequence of transforming functions (non-immutable overload).

public $T0 Pipe(params System.Func<$T0,$T0>[] functions);
Parameters

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe(System.Func_$T0,$T0_[]).functions'></a>

functions System.Func<$T0,$T0>[]

Sequence of functions that transform the value.

Returns

$T0
The final transformed value after applying all functions.

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe_R_(System.Action_$T0,R_,R)'></a>

Extensions.<G>$8048A6C8BE30A622530249B904B537EB<$T0>.Pipe<R>(Action<$T0,R>, R) Method

Pipes the caller into a two-argument action along with an extra argument.

public void Pipe<R>(System.Action<$T0,R> act, R arg);
Type parameters

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe_R_(System.Action_$T0,R_,R).R'></a>

R

Type of the second argument accepted by act.

Parameters

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe_R_(System.Action_$T0,R_,R).act'></a>

act System.Action<$T0,R>

The action to invoke with the caller and arg.

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe_R_(System.Action_$T0,R_,R).arg'></a>

arg R

The additional argument passed to act.

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe_R_(System.Func_$T0,R_)'></a>

Extensions.<G>$8048A6C8BE30A622530249B904B537EB<$T0>.Pipe<R>(Func<$T0,R>) Method

Pipes the caller through a function and returns the function result.

public R Pipe<R>(System.Func<$T0,R> f);
Type parameters

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe_R_(System.Func_$T0,R_).R'></a>

R

Return type of the function f.

Parameters

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe_R_(System.Func_$T0,R_).f'></a>

f System.Func<$T0,R>

The function to apply to the caller.

Returns

R
The result of applying f to the caller.

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe_T2,R_(System.Func_$T0,T2,R_,T2)'></a>

Extensions.<G>$8048A6C8BE30A622530249B904B537EB<$T0>.Pipe<T2,R>(Func<$T0,T2,R>, T2) Method

Applies a function that accepts the caller and an additional argument, returning the result.

public R Pipe<T2,R>(System.Func<$T0,T2,R> f, T2 arg);
Type parameters

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe_T2,R_(System.Func_$T0,T2,R_,T2).T2'></a>

T2

Type of the additional argument.

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe_T2,R_(System.Func_$T0,T2,R_,T2).R'></a>

R

Return type of the function.

Parameters

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe_T2,R_(System.Func_$T0,T2,R_,T2).f'></a>

f System.Func<$T0,T2,R>

Function to apply.

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.Pipe_T2,R_(System.Func_$T0,T2,R_,T2).arg'></a>

arg T2

Additional argument passed to f.

Returns

R
The result of f invoked with caller and arg.

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.M$52F2F8F0E9337F24B89A66DE590D3F24'></a>

Extensions.<G>$8048A6C8BE30A622530249B904B537EB<$T0>.<M>$52F2F8F0E9337F24B89A66DE590D3F24 Class

Pipe-style extensions for instances of T.

public static class Extensions.<G>$8048A6C8BE30A622530249B904B537EB<$T0>.<M>$52F2F8F0E9337F24B89A66DE590D3F24
Type parameters

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.M$52F2F8F0E9337F24B89A66DE590D3F24.$T0'></a>

$T0

Inheritance System.Object 🡒 <M>$52F2F8F0E9337F24B89A66DE590D3F24

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.M$547F3ED9A1D1A8FC90B4F3B89689A128'></a>

Extensions.<G>$8048A6C8BE30A622530249B904B537EB<$T0>.<M>$547F3ED9A1D1A8FC90B4F3B89689A128 Class

Pipes a value into a two-argument function, returning the function result.

public static class Extensions.<G>$8048A6C8BE30A622530249B904B537EB<$T0>.<M>$547F3ED9A1D1A8FC90B4F3B89689A128
Type parameters

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.M$547F3ED9A1D1A8FC90B4F3B89689A128.$T0'></a>

$T0

Inheritance System.Object 🡒 <M>$547F3ED9A1D1A8FC90B4F3B89689A128

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.M$9693FCD04DC098E818044F36B6B87842'></a>

Extensions.<G>$8048A6C8BE30A622530249B904B537EB<$T0>.<M>$9693FCD04DC098E818044F36B6B87842 Class

Provides object-level helpers for a generic instance of T.

public static class Extensions.<G>$8048A6C8BE30A622530249B904B537EB<$T0>.<M>$9693FCD04DC098E818044F36B6B87842
Type parameters

<a name='Currying.Extensions.G$8048A6C8BE30A622530249B904B537EB_$T0_.M$9693FCD04DC098E818044F36B6B87842.$T0'></a>

$T0

Inheritance System.Object 🡒 <M>$9693FCD04DC098E818044F36B6B87842

<a name='Currying.Extensions.G$8FDFD8333A6C4A7CB52CB3816594344D_$T0,$T1_'></a>

Extensions.<G>$8FDFD8333A6C4A7CB52CB3816594344D<$T0,$T1> Class

public sealed class Extensions.<G>$8FDFD8333A6C4A7CB52CB3816594344D<$T0,$T1>
Type parameters

<a name='Currying.Extensions.G$8FDFD8333A6C4A7CB52CB3816594344D_$T0,$T1_.$T0'></a>

$T0

<a name='Currying.Extensions.G$8FDFD8333A6C4A7CB52CB3816594344D_$T0,$T1_.$T1'></a>

$T1

Inheritance System.Object 🡒 <G>$8FDFD8333A6C4A7CB52CB3816594344D<$T0,$T1>

Operators

<a name='Currying.Extensions.G$8FDFD8333A6C4A7CB52CB3816594344D_$T0,$T1_.op_RightShift(System.Func_$T0_,System.Func_$T0,$T1_)'></a>

Extensions.<G>$8FDFD8333A6C4A7CB52CB3816594344D<$T0,$T1>.operator >>(Func<$T0>, Func<$T0,$T1>) Operator

Enables function composition using the right-shift operator: f1 >> f2 is equivalent to () => f2(f1()).

public static System.Func<$T1> operator >>(System.Func<$T0> f1, System.Func<$T0,$T1> f2);
Parameters

<a name='Currying.Extensions.G$8FDFD8333A6C4A7CB52CB3816594344D_$T0,$T1_.op_RightShift(System.Func_$T0_,System.Func_$T0,$T1_).f1'></a>

f1 System.Func<$T0>

<a name='Currying.Extensions.G$8FDFD8333A6C4A7CB52CB3816594344D_$T0,$T1_.op_RightShift(System.Func_$T0_,System.Func_$T0,$T1_).f2'></a>

f2 System.Func<$T0,$T1>

Returns

System.Func<$T1>

<a name='Currying.Extensions.G$94714F2E1CB57D8C2C6720D994DCC5BA_$T0,$T1,$T2_'></a>

Extensions.<G>$94714F2E1CB57D8C2C6720D994DCC5BA<$T0,$T1,$T2> Class

public sealed class Extensions.<G>$94714F2E1CB57D8C2C6720D994DCC5BA<$T0,$T1,$T2>
Type parameters

<a name='Currying.Extensions.G$94714F2E1CB57D8C2C6720D994DCC5BA_$T0,$T1,$T2_.$T0'></a>

$T0

<a name='Currying.Extensions.G$94714F2E1CB57D8C2C6720D994DCC5BA_$T0,$T1,$T2_.$T1'></a>

$T1

<a name='Currying.Extensions.G$94714F2E1CB57D8C2C6720D994DCC5BA_$T0,$T1,$T2_.$T2'></a>

$T2

Inheritance System.Object 🡒 <G>$94714F2E1CB57D8C2C6720D994DCC5BA<$T0,$T1,$T2>

Operators

<a name='Currying.Extensions.G$94714F2E1CB57D8C2C6720D994DCC5BA_$T0,$T1,$T2_.op_RightShift(System.Func_$T0,$T1_,System.Func_$T1,$T2_)'></a>

Extensions.<G>$94714F2E1CB57D8C2C6720D994DCC5BA<$T0,$T1,$T2>.operator >>(Func<$T0,$T1>, Func<$T1,$T2>) Operator

Enables function composition using the right-shift operator: f1 >> f2 is equivalent to x => f2(f1(x)).

public static System.Func<$T0,$T2> operator >>(System.Func<$T0,$T1> f1, System.Func<$T1,$T2> f2);
Parameters

<a name='Currying.Extensions.G$94714F2E1CB57D8C2C6720D994DCC5BA_$T0,$T1,$T2_.op_RightShift(System.Func_$T0,$T1_,System.Func_$T1,$T2_).f1'></a>

f1 System.Func<$T0,$T1>

<a name='Currying.Extensions.G$94714F2E1CB57D8C2C6720D994DCC5BA_$T0,$T1,$T2_.op_RightShift(System.Func_$T0,$T1_,System.Func_$T1,$T2_).f2'></a>

f2 System.Func<$T1,$T2>

Returns

System.Func<$T0,$T2>

<a name='Currying.Extensions.G$9A0204638C6A592B54686EAB5A687859_$T0,$T1_'></a>

Extensions.<G>$9A0204638C6A592B54686EAB5A687859<$T0,$T1> Class

public sealed class Extensions.<G>$9A0204638C6A592B54686EAB5A687859<$T0,$T1>
Type parameters

<a name='Currying.Extensions.G$9A0204638C6A592B54686EAB5A687859_$T0,$T1_.$T0'></a>

$T0

<a name='Currying.Extensions.G$9A0204638C6A592B54686EAB5A687859_$T0,$T1_.$T1'></a>

$T1

Inheritance System.Object 🡒 <G>$9A0204638C6A592B54686EAB5A687859<$T0,$T1>

Operators

<a name='Currying.Extensions.G$9A0204638C6A592B54686EAB5A687859_$T0,$T1_.op_RightShift(System.Func_$T0,$T1_,$T0)'></a>

Extensions.<G>$9A0204638C6A592B54686EAB5A687859<$T0,$T1>.operator >>(Func<$T0,$T1>, $T0) Operator

Operator overload to support function-first pipe syntax: func >> arg.

public static $T1 operator >>(System.Func<$T0,$T1> f, $T0 x);
Parameters

<a name='Currying.Extensions.G$9A0204638C6A592B54686EAB5A687859_$T0,$T1_.op_RightShift(System.Func_$T0,$T1_,$T0).f'></a>

f System.Func<$T0,$T1>

<a name='Currying.Extensions.G$9A0204638C6A592B54686EAB5A687859_$T0,$T1_.op_RightShift(System.Func_$T0,$T1_,$T0).x'></a>

x $T0

Returns

$T1
The result of invoking f with x.

<a name='Currying.Extensions.G$9A0204638C6A592B54686EAB5A687859_$T0,$T1_.M$5A2238FFFAB0868ADDC676FC9919C98F'></a>

Extensions.<G>$9A0204638C6A592B54686EAB5A687859<$T0,$T1>.<M>$5A2238FFFAB0868ADDC676FC9919C98F Class

Provides pipe-back helpers and an operator overload for functions so you can call func >> value as a shorthand for func(value).

public static class Extensions.<G>$9A0204638C6A592B54686EAB5A687859<$T0,$T1>.<M>$5A2238FFFAB0868ADDC676FC9919C98F
Type parameters

<a name='Currying.Extensions.G$9A0204638C6A592B54686EAB5A687859_$T0,$T1_.M$5A2238FFFAB0868ADDC676FC9919C98F.$T0'></a>

$T0

<a name='Currying.Extensions.G$9A0204638C6A592B54686EAB5A687859_$T0,$T1_.M$5A2238FFFAB0868ADDC676FC9919C98F.$T1'></a>

$T1

Inheritance System.Object 🡒 <M>$5A2238FFFAB0868ADDC676FC9919C98F

<a name='Currying.Extensions.G$B7F0343159FB3A22D67EC9801612841A_$T0,$T1_'></a>

Extensions.<G>$B7F0343159FB3A22D67EC9801612841A<$T0,$T1> Class

public sealed class Extensions.<G>$B7F0343159FB3A22D67EC9801612841A<$T0,$T1>
Type parameters

<a name='Currying.Extensions.G$B7F0343159FB3A22D67EC9801612841A_$T0,$T1_.$T0'></a>

$T0

<a name='Currying.Extensions.G$B7F0343159FB3A22D67EC9801612841A_$T0,$T1_.$T1'></a>

$T1

Inheritance System.Object 🡒 <G>$B7F0343159FB3A22D67EC9801612841A<$T0,$T1>

Operators

<a name='Currying.Extensions.G$B7F0343159FB3A22D67EC9801612841A_$T0,$T1_.op_RightShift($T0,System.Func_$T0,$T1_)'></a>

Extensions.<G>$B7F0343159FB3A22D67EC9801612841A<$T0,$T1>.operator >>($T0, Func<$T0,$T1>) Operator

Applies g to arg and returns the result. This allows using the operator form: value >> func.

public static $T1 operator >>($T0 arg, System.Func<$T0,$T1> g);
Parameters

<a name='Currying.Extensions.G$B7F0343159FB3A22D67EC9801612841A_$T0,$T1_.op_RightShift($T0,System.Func_$T0,$T1_).arg'></a>

arg $T0

The input value.

<a name='Currying.Extensions.G$B7F0343159FB3A22D67EC9801612841A_$T0,$T1_.op_RightShift($T0,System.Func_$T0,$T1_).g'></a>

g System.Func<$T0,$T1>

The function to apply.

Returns

$T1
The result of applying g to arg.

<a name='Currying.Extensions.G$B7F0343159FB3A22D67EC9801612841A_$T0,$T1_.M$9582521347D3786323CD533C7B4F1FAF'></a>

Extensions.<G>$B7F0343159FB3A22D67EC9801612841A<$T0,$T1>.<M>$9582521347D3786323CD533C7B4F1FAF Class

Enables a forward "pipe" operator syntax that applies a function to a value: value >> func.

public static class Extensions.<G>$B7F0343159FB3A22D67EC9801612841A<$T0,$T1>.<M>$9582521347D3786323CD533C7B4F1FAF
Type parameters

<a name='Currying.Extensions.G$B7F0343159FB3A22D67EC9801612841A_$T0,$T1_.M$9582521347D3786323CD533C7B4F1FAF.$T0'></a>

$T0

<a name='Currying.Extensions.G$B7F0343159FB3A22D67EC9801612841A_$T0,$T1_.M$9582521347D3786323CD533C7B4F1FAF.$T1'></a>

$T1

Inheritance System.Object 🡒 <M>$9582521347D3786323CD533C7B4F1FAF

<a name='Currying.Extensions.G$E09FCB5EB13C1AE2FC524F6744DE5322_$T0_'></a>

Extensions.<G>$E09FCB5EB13C1AE2FC524F6744DE5322<$T0> Class

public sealed class Extensions.<G>$E09FCB5EB13C1AE2FC524F6744DE5322<$T0>
Type parameters

<a name='Currying.Extensions.G$E09FCB5EB13C1AE2FC524F6744DE5322_$T0_.$T0'></a>

$T0

Inheritance System.Object 🡒 <G>$E09FCB5EB13C1AE2FC524F6744DE5322<$T0>

Methods

<a name='Currying.Extensions.G$E09FCB5EB13C1AE2FC524F6744DE5322_$T0_.ForEach(System.Action_$T0_)'></a>

Extensions.<G>$E09FCB5EB13C1AE2FC524F6744DE5322<$T0>.ForEach(Action<$T0>) Method

Applies action to each element in collection.

public void ForEach(System.Action<$T0> action);
Parameters

<a name='Currying.Extensions.G$E09FCB5EB13C1AE2FC524F6744DE5322_$T0_.ForEach(System.Action_$T0_).action'></a>

action System.Action<$T0>

The action to execute for each element.

<a name='Currying.Extensions.G$E09FCB5EB13C1AE2FC524F6744DE5322_$T0_.M$8259634A4E4CB557CC70F4A642AD6D15'></a>

Extensions.<G>$E09FCB5EB13C1AE2FC524F6744DE5322<$T0>.<M>$8259634A4E4CB557CC70F4A642AD6D15 Class

Enumerable-related extension members.

public static class Extensions.<G>$E09FCB5EB13C1AE2FC524F6744DE5322<$T0>.<M>$8259634A4E4CB557CC70F4A642AD6D15
Type parameters

<a name='Currying.Extensions.G$E09FCB5EB13C1AE2FC524F6744DE5322_$T0_.M$8259634A4E4CB557CC70F4A642AD6D15.$T0'></a>

$T0

Inheritance System.Object 🡒 <M>$8259634A4E4CB557CC70F4A642AD6D15

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Currying:

Package Downloads
CypherQueryBuilder

Cypher, OGM, Query

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.0 48 7/3/2026
1.1.0 46 7/2/2026
1.0.4 921 6/27/2023
1.0.3 261 5/26/2023
1.0.2 368 3/22/2023
1.0.1 439 12/14/2022
1.0.0 453 12/13/2022 1.0.0 is deprecated because it is no longer maintained.