public interface Term
Modifier and Type | Method and Description |
---|---|
int |
depth()
The depth of the term tree.
|
java.lang.Object |
eval(Algebra alg,
java.util.Map map)
The evaluation of this term in an algebra using
map as
the variable assignment. |
java.util.List<Term> |
getChildren()
A list of terms which are the immediate children.
|
java.util.Set<OperationSymbol> |
getOperationSymbols()
The set of operation symbols or null for a variable.
|
java.util.List<Variable> |
getVariableList()
The list of variables in the order they appear in the term.
|
TermOperation |
interpretation(SmallAlgebra alg)
The operation obtained from this term using the variables in the
order they occur.
|
Operation |
interpretation(SmallAlgebra alg,
java.util.List<Variable> varlist,
boolean useAll)
The interpretation of this term in an algebra; that is, the
operation on
alg corresponding to this term. |
int |
intEval(Algebra alg,
java.util.Map<Variable,java.lang.Integer> map)
The int evaluation of this term in an algebra using
map as
the variable assignment. |
boolean |
isaVariable() |
OperationSymbol |
leadingOperationSymbol()
The leading operation symbol or null if this term is a variable.
|
int |
length()
The length of the term.
|
Term |
substitute(java.util.Map<Variable,Term> map)
Replace some of the variables with terms.
|
java.lang.String |
toString()
A reasonably good printout of the term.
|
java.lang.StringBuffer |
writeStringBuffer(java.lang.StringBuffer sb)
This is really an efficiency helper for toString.
|
boolean isaVariable()
OperationSymbol leadingOperationSymbol()
java.util.Set<OperationSymbol> getOperationSymbols()
java.util.List<Term> getChildren()
java.lang.Object eval(Algebra alg, java.util.Map map)
map
as
the variable assignment.int intEval(Algebra alg, java.util.Map<Variable,java.lang.Integer> map)
map
as
the variable assignment.Operation interpretation(SmallAlgebra alg, java.util.List<Variable> varlist, boolean useAll)
alg
corresponding to this term.
The varlist, a list of Variable
's, specifies the
order. If useAll
is true, variables that are
not explicit in this term are still used.
(z*y)*z
, and
varlist
is (x, y, z)
.
If useAll
is true, the resulting operation will
have arity 3 and be independent of its first variable. Otherwise
it will be a 2 place operation with y
as the first
variable and z
as the second.alg
- the Algebravarlist
- the list of variablesuseAll
- if true, use all the variables in varlistTermOperation interpretation(SmallAlgebra alg)
(z*y)*z
.
The result will be a 2 place operation with z
as the first
variable and y
as the second.alg
- the Algebra#interpretation(Algebra,List,boolean)
int depth()
int length()
java.util.List<Variable> getVariableList()
Term substitute(java.util.Map<Variable,Term> map)
map
- a map for the substitutionjava.lang.String toString()
toString
in class java.lang.Object
java.lang.StringBuffer writeStringBuffer(java.lang.StringBuffer sb)
Copyright 2003 Ralph Freese. All Rights Reserved.