FSharpx.Extras


QuotationEvaluation

Namespace: FSharpx.Linq

This module provides Compile and Eval extension members for F# quotation values, implemented by translating to LINQ expression trees and using the LINQ dynamic compiler.

Nested types and modules

ModuleDescription
HelperTypes

A set of types used for implementing quotation conversions. These are public only because targets of Linq Lambda expressions require them to be so

Functions and values

Function or valueDescription
LinqExpressionHelper arg1
Signature: 'T -> Expression<'T>
Type parameters: 'T

This function should not be called directly.

Type extensions

Type extensionDescription
Compile()
Signature: unit -> unit -> 'T

Compile the quotation expression by first converting to LINQ expression trees

Exceptions: InvalidArgumentException will be raised if the input expression is not in the subset that can be converted to a LINQ expression tree

CompiledName: Expr`1.Compile

CompileUntyped()
Signature: unit -> unit -> obj

Compile the quotation expression by first converting to LINQ expression trees

Exceptions: InvalidArgumentException will be raised if the input expression is not in the subset that can be converted to a LINQ expression tree

CompiledName: Expr.CompileUntyped

Eval()
Signature: unit -> 'T

Evaluate the quotation expression by first converting to LINQ expression trees

Exceptions: InvalidArgumentException will be raised if the input expression is not in the subset that can be converted to a LINQ expression tree

CompiledName: Expr`1.Eval

EvalUntyped()
Signature: unit -> obj

Compile the quotation expression by first converting to LINQ expression trees

Exceptions: InvalidArgumentException will be raised if the input expression is not in the subset that can be converted to a LINQ expression tree

CompiledName: Expr.EvalUntyped

ToLinqExpression()
Signature: unit -> Expression

Convert the quotation expression to LINQ expression trees

This operation will only succeed for a subset of quotation expressions.

Exceptions: InvalidArgumentException will be raised if the input expression is not in the subset that can be converted to a LINQ expression tree

CompiledName: Expr.ToLinqExpression

Fork me on GitHub