Standard Library
The standard library defines the vocabulary used by a MathJSON expression. This dictionary is independent of the syntax used to parse/serialize from another language but it defines the meaning of the symbols used in a MathJSON expression.
A library contains definitions for symbols and functions, for example:
For example:
- “
Pi
is a transcendental number whose value is approximately 3.14159265…” - “The
Add
function is associative, commutative, pure, idempotent and can be applied to arbitrary number of Real or Complex numbers”.
Domains
A domain is similar to a type in a traditional programming language.
The domain of a symbol provides some contextual information about this symbol, for example: “x is a positive integer”.
The codomain of a function indicates the set of values that a function maps to, or the domain of the “result” of the function.
Each entry in the symbol dictionary indicate the domain of the symbol, and for functions its codomain.
Functions
A MathJSON function such as Add
, Sin
or Equal
can be used for a variety of
purposes. It can be helpful to classify them in some broad categories:
Category | |
---|---|
The result of evaluating an inert function is the function and its arguments. This is more useful than it sounds: it can be used to ‘tag’ an input an indicate how it should be interpreted. Examples: Hold Evaluate Complex LatexString |
|
A function that takes a variety of inputs and return a new kind of object. Examples: Symbol String Interval Range |
|
A function whose arguments and return value are all numeric. Examples: Add Sin Exp Sqrt |
|
A predicate function returns a boolean. It can evaluate if a proposition is true or false. Examples: Equal IsPrime |
|
A predicate whose arguments are also booleans. Examples: And Not Or |
Custom Library
To define a custom syntax, provide custom syntax and custom symbol
dictionaries when creating a ComputeEngine
instance.
If no custom dictionaries are provided, the default ones are used. They are organized by topic as follow:
Dictionary | Symbols/Functions |
---|---|
Arithmetic | Add Multiply Power Exp Log ExponentialE ImaginaryUnit … |
Calculus | Derive Integrate … |
Collections | Sequence List Dictionary Set … |
Control Structures | If Block Loop Sum … |
Core | Let , Set , InverseFunction LatexTokens … |
Domains | Anything Nothing Number Integer … |
Functions | Function Apply Return … |
Logic | And Or Not True False Maybe … |
Sets | Union Intersection EmptySet … |
Special Functions | Erf Gamma Factorial … |
Styling | Delimiter Style … |
Trigonometry | Pi Cos Sin Tan … |