Expr

trait Expr[T <: Txn[T], +A] extends ExprLike[T, A] with Obj[T] with Publisher[T, Change[A]]

An expression is a computation that reduces to a single value of type A. Expressions can be understood as data-flow variables. When a tree is composed, a change in the root of the tree propagates through to the leaves in the form of an emitted Change event that carries the old and new value (according to the particular node of the tree).

Basic expression types are Expr.Const - it simply wraps a constant value and thus will never change or fire an event - and Expr.Var which can be thought of as a mutable variable carrying a peer expression. When the variable assignment changes, the expression currently held is evaluated and propagated as an event. Intermediate nodes or expressions might modify the value, such as a binary operator (e.g., an integer expression that sums two input integer expressions).

Companion:
object
trait Obj[T]
trait Mutable[T]
trait Identified[T]
trait Elem[T]
trait Publisher[T, Change[A]]
trait Disposable[T]
trait Writable
trait ExprLike[T, A]
trait Form[T]
class Object
trait Matchable
class Any
trait Artifact[T]
trait Modifiable[T]
trait BooleanObj[T]
class Tuple1[T, T1, ReprT1]
class Tuple2[T, T1, ReprT1, T2, ReprT2]
trait DoubleObj[T]
class Tuple1[T, T1, ReprT1]
class Tuple2[T, T1, ReprT1, T2, ReprT2]
trait DoubleVector[T]
trait Const[T, A]
trait ExprConstImpl[T, A]
trait ConstImpl[T]
trait Program[T, A]
trait ProgramImpl[T]
trait IntObj[T]
class Tuple1[T, T1, ReprT1]
class Tuple2[T, T1, ReprT1, T2, ReprT2]
trait IntVector[T]
trait LongObj[T]
class Tuple1[T, T1, ReprT1]
class Tuple2[T, T1, ReprT1, T2, ReprT2]
trait SpanLikeObj[T]
class Tuple1[T, T1, ReprT1]
class Tuple2[T, T1, ReprT1, T2, ReprT2]
trait SpanObj[T]
class Tuple2[T, T1, ReprT1, T2, ReprT2]
trait StringObj[T]
class Tuple2[T, T1, ReprT1, T2, ReprT2]
trait ExprNodeImpl[T, A]
trait ExprTuple1[T, A, T1, ReprA, ReprT1]
trait ExprTuple2[T, A, T1, T2, ReprA, ReprT1, ReprT2]
trait ExprVarImpl[T, A, Repr]
trait VarImpl[T]

Value members

Inherited methods

final def attr(implicit tx: T): AttrMap[T]
Inherited from:
Obj
def changed: EventLike[T, Change[A]]
Inherited from:
Publisher
def dispose()(implicit tx: T): Unit
Inherited from:
Disposable
override def equals(that: Any): Boolean
Definition Classes
Identified -> Any
Inherited from:
Identified
override def hashCode: Int
Definition Classes
Identified -> Any
Inherited from:
Identified
def id: Ident[T]
Inherited from:
Identified
override def toString: String
Definition Classes
Obj -> Any
Inherited from:
Obj
override def tpe: Type
Definition Classes
Obj -> Elem
Inherited from:
Obj
def value(implicit tx: T): A
Inherited from:
ExprLike
def write(out: DataOutput): Unit
Inherited from:
Writable