Show / Hide Table of Contents

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
System.Object
BetaReductionRestrictions
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
In This Article
Back to top Generated by DocFX