We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

Esolangs

From Esolang
Jump to navigation Jump to search
For the IRC bot, see esolangs (irc).
For esolangs in general, see Esoteric programming language.
Not to be confused with Esolangs.org.

Esolangs is a joke language designed by User:RocketRace in 2020. 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!")
>

See also