Table of contents
Collapse the table of content
Expand the table of content

Patterns.LetRecursive Active Pattern (F#)

Den Delimarsky|Last Updated: 8/18/2017
1 Contributor

Recognizes expressions that represent recursive let bindings of one or more variables.

Namespace/Module Path: Microsoft.FSharp.Quotations.Patterns

Assembly: FSharp.Core (in FSharp.Core.dll)


// Signature:
( |LetRecursive|_| ) : (input:Expr) -> ((Var * Expr) list * Expr) option


input Type: Expr

The input expression to match against.

Return Value

The formal return type is ((Var * Expr) list * Expr) option. The option indicates whether the input results in a match. In a pattern matching expression, the input is decomposed, upon a successful match, into a tuple that contains two elements. The first element is a list of tuples that has two elements. The first element of the inner tuple is a Var object that represents the value being defined. The second element of the inner tuple represents the body of a recursive let binding. The second element of the outer tuple is the subexpression in which the binding is in scope.


This function is named LetRecursivePattern in the .NET Framework assembly. If you are accessing the member from a .NET Framework language other than F#, or through reflection, use this name.


Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Version Information

F# Core Library Versions

Supported in: 2.0, 4.0, Portable

See Also

Quotations.Patterns Module (F#)

Microsoft.FSharp.Quotations Namespace (F#)

© 2020 Microsoft