Esolangs

From Esolang
Jump to navigation Jump to search
For IRC bot, see esolangs (irc).
Not to be confused with Esolangs.org.

Esolangs is a joke language designed by User:RocketRace. Hop between any program in any language on esolangs.org!

Syntax

An Esolangs program consists of sequentially executed program calls of the following syntax:

language<program>

Any special characters (<, >, =, -, and any whitespace) within the language name must be escaped with backslashes (\). Angle brackets within programs must be escaped as well. Double backslashes yield a single escaped backslash.

Valid languages are all esolangs on esolangs.org that are categorized with "Languages" and "Implemented".

The output of each program call can be piped to other languages as programs, using the `=>` syntax, or called once more if the output is a valid language:

brainfuck<-.> => Malbolge
///<\\/\\/\\/><>

Pipes can be combined indefinitely. <> calls can also be chained indefinitely.

Note that languages that are piped into don't require <> to call.

The script can be in multi-line.

I/O

Program input (not the programs themselves) must be in binary, encoded to text if necessary.

Thin pipes leading nowhere are redirected to stdout:

Whitespace<       > ->

Unsourced thin pipes are drawn from stdin:

-> brainfuck<+[,.]>

There may be only one of each per line, and they must reside at the end and start of the line, respectfully.

A program's output may be treated as another program's input:

Babalang<baba is you> -> Rui<:1>

Computational class

It's got to be Turing-complete, admit it. Proof by hand-waving.

Examples

Cat program

->

Hello, world!

brainfuck<+[--\>-[\>\>+\>-----\<\<]\<--\<---]\>-.\>\>\>+.\>\>..+++[.\>]\<\<\<\<.+++.------.\<\<-.\>\>\>\>+.>

Another one:

Stuck<>

Readable:

Python<
print("Hello, world!")
>