Draft:129815260643832213061071983
129815260643832213061071983 or 6B6173616E65207465746F or the Photoshop Flowey of Esofish is a joke esolang by User:AnalysisOfVariance in 2026 designed to be absolute torture to those implementing Esofish.
Etymology
The name comes from taking the bytes of the string "kasane teto", converting them into hexadecimal, and stringing them together. The resulting hexadecimal number is 6B6173616E65207465746F, which in decimal is 129815260643832213061071983. Even though the hexadecimal expansion is objectively cooler, the decimal expansion was chosen as the primary name to be able to be implemented in Esofish.
Overview
129815260643832213061071983 is a normal imperative and object-oriented programming language such as Lua or Python.
Indentation
For the purposes of brevity, 1 is considered to be neither prime nor composite but it is considered odd.
| Condition | Indentation |
|---|---|
| Odd number | The reverse indentation follows the 6-7 rule, which states that the number of spaces goes 6-7-6-7-6-7-6-7 repeating forever. |
| Even number | The line uses normal 4-space indentation. |
| Semiprime | The line uses exponential indentation with base 2. For example, no indentation is 1 space, one level is 2 spaces, 10 levels is 1024 spaces, and so on. |
| Prime number | The line has no indentation. |
| Even triangular number | The line must follow 9-space indentation from the end of the longest line that does not indent starting from the longest line. |
| Odd triangular number | The line must follow the 6-7 rule with indentation starting from the end of the longest line that does not indent starting from the longest line. |
| Triangular semiprime | The line uses exponential indentation with base 2, but starting from the end of the longest line that does not indent starting from the longest line. |
| Triangular prime number | The line must start from the end of the longest line that does not indent starting from the longest line. |
1 | if true then 2 |if true then 3 | if true then 4 | "hello!";println 5 |end 6 | end 7 |end 8 |if false then 9 | repeat until true 10 | "hey!";println 11 |end 12 | if true then 13 |"LOLLLLLL";println 14 | end 15 | end
Operators
The order of operations are completely random, parentheses for grouping expressions are forbidden.
| Operator | Name | Overload name | Notes |
|---|---|---|---|
arg;callee
|
Call | @call
|
Can only take one argument, meaning functions must be curried. |
a$b
|
Property set/get | @getattr, @setattr
| |
!x
|
Unary logical NOT | @lnot
|
|
~x
|
Unary bitwise NOT | @bnot
|
|
-x
|
Unary negation | @neg
|
|
a + b
|
Addition | @add
|
|
a - b
|
Subtraction | @sub
|
|
a > b
|
Greater than | @gt
|
|
a < b
|
Less than | @lt
|
|
a >= b
|
Greater than or equal to | @gteq
|
|
a <= b
|
Less than or equal to | @lteq
|
|
a = b
|
Equality | @eq
|
|
a nand b
|
Logical NAND | @nand
|
|
a <- b
|
Assignment | @assign
|
Unlike other languages, the only binary logical operator is logical NAND. This is because NAND and NOR are complete, meaning other logic gates can be made with it.
Just like many modern languages, operators can be overloaded.
Identifiers
Identifiers can start with numbers or even be built-in keyword names.
Classes
Just like many modern languages, 129815260643832213061071983 is object-oriented.
Classes can be defined with 6B6173616E65207465746F.define_class method. For example:
let x0 <- define_class$6B6173616E65207465746F
let x1 <- "Esolang";x0
let x2 <- true;x1
let x3 <- "name";x2
let x4 <- String;x3
let x5 <- "finish";x4
let Esolang <- nil;x5
Syntax modification
Just like Magpie by Bob Nystrom, 129815260643832213061071983 can modify its syntax natively. Unlike Magpie however, 129815260643832213061071983 can modify its syntax at runtime.
Examples
Hello, world! program
let tmp <- globals$6B6173616E65207465746F
let println <- println$tmp
"Hello, world!";println