TPLHBPTBOTEW
TPLHBPTBOTEW, which is an acronym for This Programming Language Has Been Proven To Be On The Esolangs Wiki, is an esoteric programming language created by User:Andrew3335 and me (User:Gamer) that was designed to look like a math paper.
Language Overview
Concept
Every TPLHBPTBOTEW program must start with _Name of Your Paper_
. If this is not found at the beginning of the program, it will result in a syntax error.
The only data type in this language is the set. Sets are not unordered; they can be ordered in a specific way and they will stay ordered exactly that way. The thing that makes them different from arrays in other languages, however, is that each element's value must be different. Their names do not have to be different.
An element has a name and a value which must be set simultaneously. How to do this is described in the Commands section.
As far as flow control goes, we decided to only add if statements, for loops, and while loops. To our knowledge, nothing else is needed to make a language Turing-complete.
Commands
The element of the name x and value 2 has been proven to be in set P.
adds an element named x with the value 2 to set P. Note that x cannot be a set. A different command is needed in order to add a set to another set. Note that the value part is optional: if we only consider the name of element x (exclude the value part of the command) element x is considered to be a letter in data storage, corresponding to its name.
The proof for the element of the name x and value 2 being in set P has been proven weak.
removes the element named x with the value 2 from set P. Note that the value part is optional.
The nth element of set P has been fully computed.
outputs the nth element of set P. You can also use The last element ...
to output the last element of set P.
The element of the name x and value 2 of set P has been fully computed.
outputs the element named x with the value of 2 in set P. Note that the value part is optional.
The element of the name x and value 2 of set P has been calculated to be the sum of the element of the name x and value 2 of set P and 2.
is equivalent to x = 2; x = x + 2
in Python 3. Note that the value part is optional: if only the value part here is considered, the element of the name x is concatenated with the value it is being summed with.
The element of the name x and value 2 of set P has been calculated to be the product of the element of the name x and value 2 of set P and 2.
is equivalent to x = 2; x = x * 2
in Python 3. Note that the value part is optional.
The element of the name x and value 2 of set P has been calculated to be the difference of the element of the name x and value 2 of set P and 2.
is equivalent to x = 2; x = x - 2
in Python 3. Here, the value part is needed.
The element of the name x and value 2 of set P has been calculated to be the quotient of the element of the name x and value 2 of set P and 2.
is equivalent to x = 2; x = x / 2
in Python 3. Here, the value part is needed.
The element of the name x and value 2 of set P has been calculated to be the modulus of the element of the name x and value 2 of set P and 2.
is equivalent to x = 2; x = x % 2
in Python 3. Here, the value part is needed.
Set P has been fully computed.
outputs set P.
Set A has been included in set P following intense calculation.
adds set A to set P.
Set P's elements have been mirrored after more calculations.
mirrors set P, i.e. the first element becomes the last and vice versa.
Set P has been computed to be {x: 1, y: 2, z: 3}.
is almost equivalent to P = set(["1", "2", "3"])
in Python 3. However, sets are unordered in Python 3, while in TPLHBPTBOTEW, they are not. Names also can't be given to the elements in Python 3.
Set P has been computed to be composed of its individual elements.
explodes every element in set P, e.g. {x: "123", y: "456"}
becomes {x: {a: "1", b: "2", c: "3"}, y: {a: "4", b: "5", c: "6"}}
.
Set P has been computed to be the joining of its individual elements.
implodes every element in set P, e.g. {x: {a: "1", b: "2", c: "3"}, y: {a: "4", b: "5", c: "6"}}
becomes {x: "123", y: "456"}
.
The element of the name x and value "123" of set P has been calculated to be multiple elements.
explodes the element named x with the value "123" in set P.
The elements of the names a, b, c and values "1", "2", "3" of set P have been calculated to be one element.
implodes the elements {a: "1", b: "2", c: "3"}
in set P.
Set P has been computed to contain a copy of itself, named set A.
makes a copy of set P named set A and adds it to set P.
Flow Control Commands
If the element of the name x and value 2 has been proven to be in set P, then ... In the other case that the proof for the element of the name x and value 2 being in set P has been proven weak, then ...
The above is equivalent to x = 2; if x in P: ...; elif x not in P: ...
in Python 3.
In any other case, ...
is equivalent to else: ...
in Python 3.
Important: If you want to have multiple expressions in an if statement, separate them with commas. The last one, however, should be preceded by , and
instead of ,
. For example:
If the element of the name x and value 2 has been proven to be in set P, then the 1st element of set P has been fully computed, the element of the name x and value 2 of set P has been fully computed, the last element of set P has been fully computed, and set P has been fully computed.
For each element of the name e and value v in set P, applying to the nth next element, ...
is almost equivalent to for v in P: ...
in Python 3, except each iteration uses the nth next element instead of the next one (however, you can use ... the 1st next element ...
or just ... the next element ...
to iterate over each element). Also note that e is not used in the Python 3 (semi-)equivalent at all, since you cannot name elements of a set in Python 3.
While the element of the name x and value 2 has been proven to be in set P, ...
is equivalent to x = 2; while x in P: ...
in Python 3.
Examples
Truth-machine
Due to the fact that this language has no input capabilities, this will have to do.
_Truth-machine_ 0/1 has been proven to be in set P. If 0 has been proven to be in set P, then the last element of set P has been fully computed. In any other case, while 1 has been proven to be in set P, the last element of set P has been fully computed.
Computational class
We believe that it is Turing-complete, however it has not been proven yet.
Implementations
Currently, there are no implementations for TPLHBPTBOTEW and we do not have the patience or skill to make an interpreter/compiler, however we would love to see an implementation of this language.
See also
- English, the inspiration for this language.