# Cortex

Cortex is a programming language for scientific computing built on the Cortex Compute Engine.

The Cortex language is a work in progress. The information below reflects the current thinking and may change.

Here is “Hello World” in Cortex:

``````"Hello World"
``````

Here are a few more examples:

``````Simplify(2 + 3x^3 + 2x^2 + x^3 + 1)
// ➔ 4x^3 + 2x^2 + 3

x = 2^11 - 1
"\(x) is a \(Domain(x))"
// ➔ "2047 is a PrimeNumber"
``````

## Collections

### Dictionaries

A dictionary is a collection of set of key/value pairs separated with a comma (`,`) and surrounded by curly brackets.

Elements in a dictionary are not ordered and the keys are unique. They are iterable and indexable by the key value.

A key/value pair is a string, followed by `->` and by an expression. If the string does not contain a character with a White_Space or Pattern_Syntax Unicode property the quotation mark around the string can be omitted. Note that if the quotation mark is omitted the character escape sequences are not applied.

``````{one -> 1, two -> 2}
{"one" -> 1, "two" -> 2}
``````

The empty dictionary is `{->}`.

### Lists

A list is a collection of expressions separated with a comma `,` and surrounded by square brackets: `[` and `]`

Elements in a list are ordered and don’t have to be unique. They are iterable and indexable with a numeric value (their order in the list, start with 0).

``````[3, 5, 7, 11]
[3, 3 + 5, 3 + + 7, 3 + 5 + 7 + 11]
``````

The empty list is `[]`.

### Sets

A set is a collection of expressions surrounded by curly brackets: `{` and `}`.

Elements in a set are not ordered and must be unique. They are iterable but they are not indexable.

The empty set is `{}`.