# Core

## Constants

### Missing

This symbol is used when a required expression is not present.

MathJSON Latex
["Divide", 2, "Missing"] \frac{2}{\placeholder{}}

### Nothing

This symbol is used when an optional expression is not present.

MathJSON Latex
["List", 2, "Nothing", 3] \lrback 2,,3 \rbrack

### None

This symbol is used to indicate that out of multiple possible values, none apply.

### All

This symbol is used to indicate that out of multiple possible values, all apply.

## Functions

### About

About(symbol)

Return information about a symbol such as its domain, its attributes, its value, etc…

### Domain

Domain(expression)

Return the domain of the expression.

### Evaluate

Evaluate(expression) Evaluate(expr1, expr2)

Apply a sequence of definitions to an expression in order to reduce and simplify it.

An evaluation can consist of:

• a computation
Evaluate(2 + 3)
// ➔ 5

• an execution
Evaluate(Length([5, 7]))
// ➔ 2

• a simplification
Evaluate(2 + x + 3)
// ➔ 5 + x


### Identity

Always return its argument.

MathJSON Latex
["Identity", "x"] \operatorname{id}(x)
"Identity" \operatorname{id}

### InverseFunction

Return the inverse function of its argument.

MathJSON Latex
["InverseFunction", "Sin"] \sin^{-1}

### Lambda

Lambda"(variables:List, expression)

Create a Lambda-function, also called anonymous function.

The first argument is a symbol or a list of symbols which are the bound variables (parameters) of the Lambda-function.

The second argument is an expression expressed as a function of the bound variables of the Lambda-function.

To apply a Lambda-function to some arguments, use:

Lambda([x], x * x)(3)
// ➔ 9


You can avoid naming the parameters by using the following shorthands:

• _ or _0 : the first argument
• _1 : the second argument
• _2 : the third argument, etc…
• __: the sequence of arguments, so Length(__) is the number of arguments
Lambda(_ * _)(4)
// ➔ 16


You can assign a Lambda expression to a symbol for later use:

cube = Lambda(_ * _ * _)
cube(5)
// ➔ 125


### Latex

["Latex", expr-1, expr-2, ...expr-n]

• expr-n: one or more expressions
• Returns a string, a Latex string corresponding to the input expressions.
["Latex", ["Divide", "Pi", 2]]
// ➔ "'\frac{\pi}{2}'"


If the argument is a string, it is interpreted as a Latex token or fragment:

• <{>: begin group
• <}>: end group
• <space>: blank space