trait ParEagerSubst extends Par
Eager evaluation of lambda calculus with parallel term-level substitution and arithmetic operations.
- Source
- ParEagerSubst.scala
- Alphabetic
- By Inheritance
- ParEagerSubst
- Par
- ReduceSubst
- Reduce
- RewritingEvaluator
- Evaluator
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
lazy val
arithop: Strategy
- Definition Classes
- Reduce
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
lazy val
beta: Strategy
Beta reduction via term-level substitution.
Beta reduction via term-level substitution.
- Definition Classes
- Par → ReduceSubst → Reduce
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
eval(exp: Exp): Exp
Evaluate the given expression by rewriting it with the s strategy.
Evaluate the given expression by rewriting it with the s strategy.
- Definition Classes
- RewritingEvaluator → Evaluator
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
freshVar(): Idn
Generate a fresh variable name.
Generate a fresh variable name. Prefix the name with an underscore to avoid the potential for clashes with user-level variables (which must start with a letter).
- Definition Classes
- Evaluator
-
val
freshVarCounter: Counter
Counter used to generate fresh names.
Counter used to generate fresh names.
- Definition Classes
- Evaluator
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
lazy val
lambda: PlusStrategy
Reusable strategy for reduction with explicit term-level substitution.
Reusable strategy for reduction with explicit term-level substitution.
- Definition Classes
- Par → ReduceSubst
-
lazy val
letLet: Strategy
Merging two arbitrary parallel binders.
Merging two arbitrary parallel binders.
- Definition Classes
- Par
-
def
lookupb(x: Idn, ds: Seq[Bind]): Option[Exp]
Lookup a binding for a name in a list of bindings.
Lookup a binding for a name in a list of bindings.
- Definition Classes
- Par
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
reducesinlambdas: Boolean
Whether this mechanism evaluates inside lambdas.
Whether this mechanism evaluates inside lambdas. Used for testing. Default: false.
- Definition Classes
- Evaluator
-
lazy val
s: Strategy
Eagerly evaluate within the expression then try to reduce the expression itself, repeating until no change.
Eagerly evaluate within the expression then try to reduce the expression itself, repeating until no change.
- Definition Classes
- ParEagerSubst → ReduceSubst → Reduce → RewritingEvaluator
-
lazy val
subsApp: Strategy
Substitution in applications.
Substitution in applications.
- Definition Classes
- Par → ReduceSubst
-
lazy val
subsLam: Strategy
Substitution in lambda abstractions.
Substitution in lambda abstractions.
- Definition Classes
- Par → ReduceSubst
-
lazy val
subsNum: Strategy
Substitution in numeric terms.
Substitution in numeric terms.
- Definition Classes
- Par → ReduceSubst
-
lazy val
subsOpn: Strategy
Substitution in primitive operations
Substitution in primitive operations
- Definition Classes
- Par → ReduceSubst
-
lazy val
subsVar: Strategy
Substitution in variable terms.
Substitution in variable terms.
- Definition Classes
- Par → ReduceSubst
-
def
substitute(x: Idn, e2: Exp, e1: Exp): Exp
Capture-free substitution of free occurrences of x in e1 with e2.
Capture-free substitution of free occurrences of x in e1 with e2.
- Definition Classes
- Evaluator
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )