Interpriterlol
InterpriterLol is a programming language designed and written by User:Zlfp, that is designed to look dumb and feel dumb, yet, turing complete
Commands
authors note, i have a yeti in my basement that i cant get rid of
so, the commands in InterpriterLol are nothing really special, yet, not standart. (only by naming conventions)
| name | args | what it does |
|---|---|---|
| write | value:
|
writes out the value into the terminal (or wherever you're running this) |
| goto | value:
|
goes to the line specified in the value (note that the lines start with 0) |
| get | value:
|
requests a string from the user with the value as what it asks |
| getnum | value:
|
requests a number from the user with the value as what it asks |
References (not the links at the end, but the refernces in programming)
so, a Reference is a pointer, but high level, so, what it basically does, is makes a variable be setable by a variable. so, for example, if b is a reference to a (denoted like ~a), then setting b would reset a instead, and you need to use ~= to reset the value of b.
Variables
so, variables are created and set in a python like manner, name = value, but, if you set it to a reference, however (like this: name = ~variable), any attempt at setting the variable will result in the variable in the reference to be set. and if you want to reset the variable that is a reference, you need to use this: name ~= newvalue.
Lists
all, the same, indexed as list[index], written as [element1, element2, ...]
Strings
"why am i even doing this?" - ⚡︎ Zlfp 🗪 20:47, 26 February 2026 (UTC)
so, strings can both be sourrounded by ' and "
Any customs? yes of course, its an esolang
so, the first one is that true and false default to 1 and 0, the numbers, whitch means you can do crazy stuff.
also, this language does not have an and or an or, so, since true is 1 and false is 0, we can replace theese concepts
and: (condition1 + condition2)/2 == 1
or: (condition1 + contition2)/2 > 0
not: (conditon1 - 1)*-1
also, less than or equal is =< insted of <= to better match its counterpart >=
why does this work?
well, as we can see, the conditions sum up 2 if both are true, so, we can get the average in order to determine how many are true (0 - all false, 1 - all true, 0.5 - 1 true), and then we can set a limit on how much of them are true (> 0 - atleast 1, == 1 - all of them) and we can do this for any number of conditions
for not, its simple, 0 = -1, 1 = 0, and then we just flip the negative in order to get 0 = 1, 1 = 0
Examples
"i have some egg samples" - ⚡︎ Zlfp 🗪 20:47, 26 February 2026 (UTC)
"It's me, your eggs husband" - asgore
hello, world!
write("Hello, world!")
Truth machine
goto(3)
goto(5)
goto(7)
num = getnum("1 or 0: ")
goto((((num == 1) + (num == 0))/2 > 0) +1)
write("error")
goto(14)
goto((num == 1) +8)
goto(10)
goto(13)
write(0)
goto(14)
write(1)
goto(12)
Fizzbuzz
goto(3)
goto(19)
goto(6)
i = 0.0
i = i+1
goto((i =< 100) + 1)
goto((i%15 == 0) + 7)
goto((i%5 == 0) +10)
write("fizzbuzz")
goto(4)
goto((i%3 == 0) +13)
write("buzz")
goto(4)
goto(15)
goto(17)
write(i)
goto(4)
write("fizz")
goto(4)
and yes, there is an actuall github to the interpriter, hence, the name