From Esolang
Jump to: navigation, search

@ is a golfing language created and maintained by User:Gemdude46. It is still in its very early stages. An interpreter, vague documentation and some examples are available at its GitHub repo.

Structure of a program

The language is made of a tree of function calls. Each character (with some exceptions) represents a function that may take as many or few arguments as it likes. Arguments are then read from directly after it in the code.

For example:

If instruction A takes 1 argument, B takes 2, C takes 3, and D and E both take none, then the @ code


Would be written in many languages like

   B(A(D()), C(D(), B(E(), D()), E())))

Instruction arguments are evaluated LTR unless the docs explicitly say otherwise. Arguments may not be evaluated at all or may be evaluated more than once.

Values and data types

@ has the following data types:

number - This is an arbitrary precision rational number.

vector - This is an immutable list of other values of any type.

If anything refers to a string, then it means a vector of codepoints.

Anything enclosed in braces is seen as a string literal. String literals are automatically ended on EOF. Should an EOF be encountered where an instruction should be, Š is used.


Hello world:




Truth machine:


Computational class

@ can invoke the system shell, and therefore is Turing-complete if the shell is. Without this, I do not believe that it is Turing-complete yet as I have not yet implemented variables. They should be in the next release, however.

External resources