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.

Interpriterlol

From Esolang
Jump to navigation Jump to search

this article consults Interpriterlol 1.0, note that further versions will not be added below

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:
  • String
  • number
  • List
  • Reference
writes out the value into the terminal (or wherever you're running this)
goto value:
  • Number (without a fractional part (or .0))
goes to the line specified in the value (note that the lines start with 0)
get value:
  • String
prompts the value to the user, storing the user input as a string
getnum value:
  • String
prompts the value to the user, storing the user input as a number

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