Class BetaReductionRestrictions
Flags to control restrictions for usage of argument expressions in the body of a lambda during beta reduction. Because beta reduction moves expressions to usage sites of parameters, the arity of side-effects can change.
Inheritance
Namespace: System.Linq.CompilerServices
Assembly: Nuqleon.Linq.CompilerServices.dll
Syntax
public sealed class BetaReductionRestrictions : Enum
Fields
DisallowDiscard
An argument expression cannot be discarded and needs to be used at least once ('+' Kleene closure). This is a static restriction and provides no guarantees about dynamic runtime behavior, which is dependent on the use site(s) of the expression.
Declaration
public const BetaReductionRestrictions DisallowDiscard
Field Value
Type | Description |
---|---|
BetaReductionRestrictions |
DisallowMultiple
An argument expression can be used at most once ('?' Kleene closure). This is a static restriction and provides no guarantees about dynamic runtime behavior, which is dependent on the use site(s) of the expression.
Declaration
public const BetaReductionRestrictions DisallowMultiple
Field Value
Type | Description |
---|---|
BetaReductionRestrictions |
ExactlyOnce
An argument expression should be used exactly once. This is a static restriction and provides no guarantees about dynamic runtime behavior, which is dependent on the use site(s) of the expression.
Declaration
public const BetaReductionRestrictions ExactlyOnce
Field Value
Type | Description |
---|---|
BetaReductionRestrictions |
None
No restriction. An argument expression can be used any number of times ('*' Kleene closure).
Declaration
public const BetaReductionRestrictions None
Field Value
Type | Description |
---|---|
BetaReductionRestrictions |
value__
Declaration
public int value__
Field Value
Type | Description |
---|---|
System.Int32 |