Lythnology
Designed by | user:RainbowDash |
---|---|
Appeared in | 2025 |
Computational class | Turing complete |
Reference implementation | Unimplemented |
Influenced by | Baba Is You |
File extension(s) | .lyth |

Lythnology is a programming language in which you define your own words, as the programmer you are given a list of already defined words, along with their affordances. All words are uppercased, and there are no other symbols besides spacing (such as tabs) and newlines.
An Introduction
Lythnology is based on creating words a word is simply just a single word, like "DOG". Some of these words can affect other words or the program's flow, this is what is meant by "Affordances". Each word also has "Values" which are looked at when you are printing, or inside of an if statement.
To make a comment simply put #
and all text infront of it will be ignored.
Words
The Pre-Existing Dictionary
You can create words or pick from the list of already defined words which includes
IF
|IS
|THEN
|TO
|TRANSFORMS
|WHEN
|SAY
|INPUT
|AND
|WITH
|OR
|NOT
Each word has it's "Affordances" and it's "Values".
To create a word, simply put it into the program, and it will be added to part of the dictionary for example if you say "DOG" it will have no affordances because it doesn't do anything yet, and it has the value of "DOG".
Creating Words
To create a word, you can simply put it into the program.
For example if put the word "DOG" into the program it will be given zero affordances, meaning it can't affect anything. but it will have the value "DOG" so for example if have the program.
SAY DOG
it will print "DOG" to the console because the word DOG has a value of "DOG" but if you do this instead.
DOG IS BLUE SAY DOG
the word DOG now has the value of "BLUE" so it will instead print "BLUE"
You can also define words to pre existing words like
PRINT IS SAY PRINT DOG
The word PRINT has the affordances that the word SAY has, so it will be able to say the word infront of it.
Variables
To create a variable you can change the value of a word, to do this you have the words IS
, OR
, WITH
& AND
OR randomly picks from a list of other words, IS simply sets a value of another word
Examples:
DOG IS CAT
This creates the word DOG and sets its value to "CAT". if the word CAT already exists, it will copy all of it's properties into DOG, while the word CAT remains the same.
RANDOM IS ONE OR TWO OR THREE OR FOUR
This simply picks a random word for the value RANDOM to be set to, again if the word it picks already exists, the properties will be copied to the word RANDOM.
RANGE IS ONE AND TWO AND THREE AND FOUR AND FIVE
This introduces the fact that a singular word can have multiple different values. Using AND will inherit all of the properties of each word. When you print RANGE it will say "ONE TWO THREE FOUR FIVE".
THAT IS ACQ WITH UIT WITH TED
The word THAT will now have the value of "ACQUITTED" it simply concats the value of each word, unlike AND, the word being assigned does not inherit the affordances of each word.
Conditionals & Jumping
IF Statements
An IF statement normally consists of this structure IF ... IS ... THEN
where if the statement is false, it jumps to the word THEN.
Here is an example to show it in action.
NUMBER IS ONE IF NUMBER IS ONE NUMBER IS NUMBER # Reassigns NUMBER to the value "NUMBER" so you can print the word number. SAY NUMBER SAY IS SAY ONE THEN
This program above, creates the word NUMBER with the value of "ONE" and then the program prints that the NUMBER is one.
Multiple Values
If a word has multiple values, it will flag true for all of them
RANGE IS ONE AND TWO AND THREE AND FOUR IF RANGE IS ONE PRINT YES # This will print yes because the word ONE is one of the values of RANGE THEN IF RANGE IS FIVE PRINT YES # This will not print because the word FIVE is not one of the values of RANGE THEN
NOT
Not works like how you would expect not to
CAT IS DOG IF CAT IS NOT DOG PRINT YES # This will not print because cat has a value of DOG THEN
Backwards Jump
Jumping backward is simple you use the word WHEN, this will jump back to the most recent time a word was used.
WAS PRINT HELLO WHEN WAS
This program will print hello forever.
IO
Printing
If you have read everything before, you should have a good idea about how printing words, however I'll go over it again, clearly.
To print use the word SAY, this will say the value of the word infront of it.
Printing will print one word to the console at a time each with a space between, no newlines.
CAT IS DOG # This defines the word CAT to have a value of DOG SAY CAT # Prints dog
If you do not like the word "SAY" to print you can change it like so
PRINT IS SAY # the word PRINT gets the affordances of SAY PRINT DOG # Prints dog
Input
Input is in the form of singular words, if the user inputs multiple words only the first word will be retrieved and then uppercased. To showcase this, here is a simple one time cat.
USER IS INPUT # Gets input from the user, and stores it in the value of the word USER SAY USER # Prints back whatever the user says.
Transforming
Transforming is powerful, this is what allows you to define stuff such as mathematical functional words for example
INCREMENT TRANSFORMS ONE TO TWO TO THREE TO FOUR TO FIVE TO SIX TO SEVEN TO EIGHT TO NINE TO ZERO THIS IS ONE INCREMENT THIS SAY THIS # Prints two
The word INCREMENT will be given the Affordance of being able to transform other words, so the word THIS will now have a value of TWO when printed. You can also define multivariable transforms like so
INPUTONE IS A INPUTTWO IS B COMBINED IS A WITH B AND TRANSFORMS AA TO A AB TO B BA TO B BB TO B
This emulates an and gate.
Example Programs
Ten bottles of beer on the wall
It is ten bottles just for simplicity.
DECREMENT TRANSFORMS TEN TO NINE TO EIGHT TO SEVEN TO SIX TO FIVE TO FOUR TO THREE TO TWO TO ONE COUNT IS TEN WAS SAY COUNT SAY BOTTLES SAY OF SAY BEER SAY ON SAY THE SAY WALL SAY TAKE SAY ONE SAY DOWN SAY PASS SAY IT SAY AROUND DECREMENT COUNT IF COUNT IS NOT ONE WHEN WAS # Jumps back to the word WAS THEN SAY NO SAY MORE SAY BOTTLES SAY OF SAY BEER SAY ON SAY THE SAY WALL
Truth Machine
SAID IS INPUT IF SAID IS 0 SAY 0 THEN IF SAID IS 1 WAS SAY 1 WHEN WAS THEN
Rock Paper Scissors
ROBOT IS ROCK OR SCISSORS OR PAPER PLAYER IS INPUT RESULT TRANSFORMS ROCKPAPER TO ROBOT PAPERROCK TO PLAYER ROCKROCK TO TIE PAPERPAPER TO TIE SCISSORSCISSORS TO TIE ROCKSCISSORS TO PLAYER SCISSORSROCK TO ROBOT PAPERSCISSORS TO ROBOT SCISSORSPAPER TO PLAYER TOTAL IS PLAYER WITH ROBOT RESULT TOTAL SAY TOTAL
Infinite Cat
WAS USER IS INPUT SAY USER WHEN WAS