Definition of Surface and Nested Types
Description
The type checks that require information only about the top level of the expression tree will be called surface types.
Types that check a complete expression tree (probably recursively) will be called nested types.
Most of the system types are surface types since these are encoded in the top node of the expression tree. Thus
type⁡{..},set;
type⁡[a]+[b,c],algebraic;
Both return true regardless of the types of the components of the set in the first case, and regardless of the types of the terms of the sum in the second.
The following types are examples of surface types:
`!`
`*`
`+`
`..`
`.`
`<=`
`<>`
`<`
`=`
`^`
`and`
`implies`
`intersect`
`minus`
`module`
`not`
`or`
`union`
`xor`
algebraic
anything
applied
boolean
equation
even
float
foreign
fraction
function
indexed
integer
laurent
linear
list
listlist
logical
mathfunc
moduledefinition
monomial
name
negative
nonemptylist
nonemptyset
nonemptystring
nonnegative
numeric
odd
point
positive
procedure
radical
range
rational
record
relation
RootOf
rtable
scalar
SERIES
series
set
sqrt
string
table
taylor
trig
truefalse
truefalseFAIL
type
uneval
zppoly
The type 'constant', on the other hand, will completely scan an expression to determine whether or not it is composed of any nonconstant parts. Hence it is a nested type. The following types are examples of nested types:
algfun
algnum
appliable
callable
constant
cubic
expanded
mutable
polynom
quadratic
quartic
radfun
radnum
ratpoly
See Also
Download Help Document