Core

Constants

Symbol Description
Missing A required expression is not present.
Nothing An optional expression is not present
None None of the possible values, none apply
All All the possible values apply
Example
["Divide", 2, "Missing"] \[\frac{2}{\unicode{"2B1A}}\]
["List", 2, "Nothing", 3] \[\lbrack 2, ,3 \rbrack\]

Functions

Function Operation
About (symbol)
Return information about a symbol such as its domain, its attributes, its value, etc…
Domain (expression)
Return the domain of the expression
Evaluate (expression)
Apply a sequence of definitions to an expression in order to reduce and simplify it. Overrides Hold and hold attributes of a function.
Hold (expression)
Maintain an expression in an unevaluated form.
Identity (symbol)
Always return its argument
InverseFunction (expression)
Return the inverse function of its argument, for example \( \arcsin \) for \(\sin\)
Example
["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 _1 : the first argument
  • _2 : the second argument
  • _3 : 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 and LatexSymbols

["Latex", expr ]`

  • expr: a MathJSON expression
  • Returns a Latex string representing the expression.
["Latex", ["Divide", "Pi", 2]]
// ➔ "'\frac{\pi}{2}'"

["LatexSymbols", str-1, str-2, ...str-n]

The arguments _str-n_ are interpreted as Latex tokens:

Token
<{> begin group
<}> end group
<space> blank space
<$$> display mode shift
<$> inline mode shift
#0-#9 argument
#? placeholder
string that starts with / a Latex command
other strings ordinary symbols
["LatexSymbols", "'\\frac'", "'<{>'", "'pi'", "'<}>'", "'<{>'", 2, "'<}>'"]
// ➔ "'\frac{\pi}{2}'"

See: TeX:289

Piecewise

Prime

MathJSON Latex
["Prime", "f"] f^\prime
["Prime", "f", 2] f^\doubleprime

Match

expr1 === expr2

Match(expr1, expr2)

Match(expr1, expr2, ...expr-n)

Indicate if two (or more) expressions are structurally identical, using a literal symbolic identity.

Two expressions are the same if:

  • they have the same domain.
  • if they are numbers, if their value and domain are identical.
  • if they are symbols, if their names are identical.
  • if they are functions, if the head of the functions are identical, and if all the arguments are identical.

Two expressions that have a different wikidata metadata will not be the same, even if they are otherwise identical. Other metadata does not affect the comparison.

// Greek letter vs. ratio of the circumference of a circle to its diameter
match({ sym: 'Pi', wikidata: 'Q168' }, { sym: 'Pi', wikidata: 'Q167' });
// ➔ null (does not match)

Using a canonical format will result in more positive matches.

match(parse('x + 1'), parse('1 + x')));
// ➔ null

match(ce.canonical(parse('x + 1'), parse('1 + x')));
// ➔ True

Superscripts and Subscripts

Symbol Description
Subminus \[ x_- \]
Subplus \[ x_+\]
Subscript \[ x_{n} \]
Substar \[ x_*\]
Superdagger \[ x^\dagger\]
Superminus \[ x^-\]
Superplus \[ x^+\]
Superstar \[ x^*\] When the argument is a complex number, indicate the conjugate.

String

Symbol