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.
Telephone
Jump to navigation
Jump to search
- This is still a work in progress. It may be changed in the future.
Telephone is a language developed by User:Broxol that is designed for multiple functions assigned to one letter, though, that’s not really important. It currently has no place to run it yet, but I’m working on it.
Note: If you want to change your code, you should change the code variable. I think that would be pretty obvious, but just in case.
Syntax
| Command | Description |
|---|---|
_p…| |
Prints directly to the console |
a…|b |
Creates str var and assigns it a string |
pb| |
Prints str var |
p|v |
Prints num var |
p|u_ |
Prints list |
ppv |
Allows user input and maps it to var |
vk0 |
Defines a num var |
vk+1 |
Adds to var |
vk-1 |
Subtracts from var |
vk*1 |
Multiplies var |
vk%1 |
Divides var |
vk$1 |
Modulus |
[…] |
Loop |
fk[…] |
For loop that runs k times |
fu[…] |
Iterates through list u |
& / # |
& is an auto assigned num and str var that is the element in an iteration of a list, # is a num var that is autoassigned for the purpose of index in an iteration of a list |
lu(1^2^3^) |
Creates list and assigns it values [1, 2, 3] |
Interpreter
english_dict = {"&":""}
variables = {"&": 0,"#": 0}
loops = []
lists = {}
iterring = False
iterlist = False
code = ""
code = list(code)
for item in code:
try:
code[code.index(item)] = int(item)
except ValueError:
pass
print(code)
i = 0
while i < len(code):
if code[i] == "p":
if code[i + 1] == "p":
grate = input()
if grate.isdigit():
variables[code[i + 2]] = int(grate)
else:
english_dict[code[i + 2]] = str(grate)
i += 3
else:
if code[i + 1] == "|":
if code[i + 2] in variables:
print(variables[code[i + 2]])
i += 3
elif code[i + 2] in lists:
if code[i + 3] == "_":
print(lists[code[i + 2]])
i += 4
elif code[i + 3] in variables:
print(lists[code[i + 2]][variables[code[i + 3]]])
i += 4
else:
store = code[i + 2]
i += 2
read = []
while code[i] != ";":
i += 1
if code[i] != ";":
read.append(str(code[i]))
read = "".join(read)
read = int(read)
print(lists[store][read])
i += 1
else:
if code[i - 1] == "_":
read = []
while code[i] != "|":
i += 1
if code[i] != "|":
read.append(str(code[i]))
read = "".join(read)
print(read)
else:
while code[i] != "|":
i += 1
if code[i] != "|":
print(english_dict[code[i]])
if code[i] == "?":
if code[i + 1] == "?":
#Your adding functionality for jumping to the end if a - is put after this
if code[i + 2] == "-":
i = len(code) - 1
elif code[i + 2] == "_":
i += 5
while i != "_":
i += 1
elif code[i + 2] == "v":
i = variables[code[i + 3]]
else:
i = code[i + 2]
else:
if code[i + 2] in variables:
if code[i + 3] == "=":
if variables[code[i + 1]] == variables[code[i + 2]]:
i += 4
else:
while code[i] != "/":
i += 1
elif code[i + 3] == ">":
if variables[code[i + 1]] > variables[code[i + 2]]:
i += 4
else:
while code[i] != "/":
i += 1
elif code[i + 3] == "<":
if variables[code[i + 1]] < variables[code[i + 2]]:
i += 4
else:
while code[i] != "/":
i += 1
else:
logstore = code[i + 2]
varstore = code[i + 1]
i += 2
store = []
while code[i] != ",":
i += 1
if code[i] != ",":
store.append(str(code[i]))
store = int("".join(store))
if logstore == "=":
if variables[varstore] == store:
i += 1
else:
while code[i] != "/":
i += 1
elif logstore == ">":
if variables[varstore] > store:
i += 1
else:
while code[i] != "/":
i += 1
elif logstore == "<":
if variables[varstore] < store:
i += 1
else:
while code[i] != "/":
i += 1
if code[i] == "@":
if code[i + 3] == "=":
if english_dict[code[i + 1]] == english_dict[code[i + 2]]:
i += 4
else:
while code[i] != "/":
i += 1
elif code[i + 3] == "I":
if english_dict[code[i + 1]] in english_dict[code[i + 2]]:
i += 4
else:
while code[i] != "/":
i += 1
else:
assert 0 == 1, "Invalid measure"
if code[i] == "a":
temp = []
while code[i] != "|":
i += 1
if code[i] != "|":
temp.append(code[i])
temp = "".join(temp)
english_dict[code[i + 1]] = temp
i += 2
if code[i] == "[":
if code[i - 2] == "f":
if code[i - 1] in variables:
iterr = variables[code[i - 1]]
elif code[i - 1] in lists:
iterlistname = code[i - 1]
iterr = len(lists[code[i - 1]])
iterlist = True
else:
iterr = code[i - 1]
variables["#"] = 0
if iterlist == True:
variables["&"] = lists[code[i - 1]][0]
english_dict["&"] = lists[code[i - 1]][0]
iterring = True
if code[i] == "]":
if iterring == True:
variables["#"] = variables["#"] + 1
if iterlist == True:
try:
variables["&"] = lists[iterlistname][variables["#"]]
english_dict["&"] = lists[iterlistname][variables["#"]]
except IndexError:
pass
if variables["#"] >= iterr:
i += 1
iterring = False
iterlist = False
else:
while code[i] != "[":
i -= 1
else:
while code[i] != "[":
i -= 1
if code[i] == "v":
if code[i + 2] == "+":
if code[i + 3] in variables:
variables[code[i + 1]] += variables[code[i + 3]]
else:
variables[code[i + 1]] += code[i + 3]
i += 4
elif code[i + 2] == "-":
if code[i + 3] in variables:
variables[code[i + 1]] -= variables[code[i + 3]]
else:
variables[code[i + 1]] -= code[i + 3]
i += 4
elif code[i + 2] == "*":
if code[i + 3] in variables:
variables[code[i + 1]] *= variables[code[i + 3]]
else:
variables[code[i + 1]] *= code[i + 3]
i += 4
elif code[i + 2] == "%":
if code[i + 3] in variables:
variables[code[i + 1]] = round(variables[code[i + 1]] / variables[code[i + 3]])
else:
variables[code[i + 1]] = round(variables[code[i + 1]] / code[i + 3])
i += 4
elif code[i + 2] == "$":
if code[i + 3] in variables:
variables[code[i + 1]] %= variables[code[i + 3]]
else:
variables[code[i + 1]] %= code[i + 3]
i += 4
elif code[i + 2] in lists:
store = code[i + 2]
storevar = code[i + 1]
i += 2
read = []
while code[i] != ";":
i += 1
if code[i] != ";":
read.append(str(code[i]))
read = "".join(read)
read = int(read)
variables[storevar] = lists[store][read]
i += 1
elif code[i + 2] in variables:
variables[code[i + 1]] = variables[code[i + 2]]
i += 3
else:
variables[code[i + 1]] = code[i + 2]
i += 3
if code[i] == "l":
if code[i + 1] != "_":
store = code[i + 1]
i += 2
curitem = []
auxlist = []
while code[i] != ")":
i += 1
if code[i] != "^":
curitem.append(str(code[i]))
else:
if code[i] != ")":
curitem = "".join(curitem)
if curitem.isdigit():
curitem = int(curitem)
auxlist.append(curitem)
curitem = []
lists[store] = auxlist
print(lists)
else:
if code[i + 2] == "a":
if code[i + 3] in variables:
lists[code[i + 4]].append(variables[code[i + 3]])
i += 5
else:
i += 2
read = []
while code[i] != ";":
i += 1
if code[i] != ";":
read.append(str(code[i]))
read = "".join(read)
if read.isdigit():
read = int(read)
i += 1
lists[code[i]].append(read)
i += 1
elif code[i + 2] == "d":
i += 2
read = []
while code[i] != ";":
i += 1
if code[i] != ";":
read.append(str(code[i]))
read = "".join(read)
read = int(read)
i += 1
lists[code[i]].pop(read)
i += 1
elif code[i + 2] == "j":
i += 2
if code[i + 1] in variables:
storage = variables[code[i + 1]]
i += 1
read = []
else:
read = []
while code[i] != ";":
i += 1
if code[i] != ";":
read.append(str(code[i]))
read = "".join(read)
if read.isdigit():
read = int(read)
storage = read
read = []
while code[i] != "%":
i += 1
if code[i] != "%":
read.append(str(code[i]))
read = "".join(read)
read = int(read)
i += 1
print(i)
lists[code[i]].insert(read, storage)
i += 1
elif code[i + 2] == "l":
variables[code[i + 4]] = len(lists[code[i + 3]])
i += 5
elif code[i + 2] == "r":
lists[code[i + 3]] = lists[code[i + 3]][::-1]
i += 4
elif code[i + 2] == "p":
lists[code[i + 3]][variables[code[i + 4]]] = variables[code[i + 5]]
i += 6
if code[i] == "i":
iterate = True
wow = 0
iterlist = code[i + 1]
savelist = list(lists[code[i + 1]])
variables["&"] = lists[iterlist][wow]
i += 2
if code[i] == "s":
if code[i + 1] == "s":
lists[code[i + 3]] = list(english_dict[code[i + 2]])
i += 4
else:
tempvar = variables[code[i + 1]]
variables[code[i + 1]] = variables[code[i + 2]]
variables[code[i + 2]] = tempvar
if code[i] == "j":
if code[i + 1] == "j":
english_dict[code[i + 2]] = english_dict[code[i + 3]] + english_dict[code[i + 4]]
i += 5
else:
tempvar = "".join(lists[code[i + 1]])
english_dict[code[i + 2]] = tempvar
i += 3
if code[i] == "f":
i += 2
elif code[i] == "." or code[i] == "|" or code[i] == "_" or code[i] == "i" or code[i] == "/" or code[i] == "[" or code[i] == ")" or code[i] == "(" or code[i] == "{":
i += 1