Backslash Calculus
Jump to navigation
Jump to search
Backslash Calculus is a programming language invented by User:Tailcalled after reading this reddit comment.
Syntax
Backslash Calculus is based on lambda calculus, but it only uses two characters: backslash and space. This is the basic syntax:
E = \ \ E - abstraction | \ \\ E E - application | \\ - innermost variable | \\\ - the variable one level more out | ... - ...
Computational Class
Backslash Calculus is clearly Turing-complete, even if one ignores its simple translation to lambda calculus. Here are the SKI combinators:
S = \ \ \ \ \ \ \ \\ \ \\ \\\\ \\ \ \\ \\\ \\ K = \ \ \ \ \\\ I = \ \ \\
Alternative alphabets
Tailcalled imagined a few alternative alphabets for Backslash Calculus.
Unreadable
One can replace backslash with ' and space with ". The SKI combinators will look like this with that alphabet:
S = '"'"'"'"'"'"'"''"'"''"''''"''"'"''"'''"'' K = '"'"'"'"''' I = '"'"''
Brainfuck
One can change the syntax a bit to make Backslash Calculus look more like brainfuck:
E0 = + E1 - | [ E0 E0 ] | . | ,. | ,,. <- unary-ish | ... E1 = > E0 < | [ E1 E1 ] | . | ,. | ,,. <- unary-ish | ...
The SKI combinators will look like this:
S = +>+[[,,..][,..]]-<- K = +>[,.]<- I = +.-