InputSet
Jump to navigation
Jump to search
InputSet is an esolang by User:ChuckEsoteric08 inspired by Wheat.
Specification
Memory consists of variables which contain arbitrary long strings. On the start of the program all of them are set to empty string
a
, b
and c
are arguments that can be replaced with:
(a)
which returns value of variable a
.
(a/n)
which returns n
-th symbol in string a
.
{a}
which returns lenght of string a
.
$
for refecencing current character in for loop
In all commands except in "input
" command, argument a
in "set
" command and argument b
in "replace
" command. Arguments are seperated by space.
input a |
Store user input in variable a
|
output a |
Output string a
|
set a b |
Set variable a to string b
|
for a { |
Run code between this command and matching } command for every character in string a .
|
} |
End for-loop |
if a b [ |
If string a is equal to string b execute commands between this command and matching ] command
|
] |
End if-statement |
forever ( |
Start of forever loop |
) |
End forever loop |
replace a b c |
Replace a -th character in variable b with string c . If there is no c , then it would delete that symbol.
|
Examples
Hello, World!
output Hello,World!
Computational class
InputSet is Turing-complete because there is Cyclic Tag interpreter in it (version with comments is here):
input data input program forever ( for (program) { if $ ; [ replace 1 data ] if $ 1 [ if (data/1) 1 [ if (data/{(data)}) 1 [ replace {(data)} data 11 ] if (data/{(data)}) 0 [ replace {(data)} data 01 ] ] ] if $ 0 [ if (data/1) 1 [ if (data/{(data)}) 0 [ replace {(data)} data 00 ] if (data/{(data)}) 1 [ replace {(data)} data 10 ] ] ] } )
Data is inputed First, then program itself