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.
?index.php
Jump to navigation
Jump to search
?index.php is an esoteric programming language by User:Dragoneater67.
Overview
Commands are executed 1-by-1 left-to-right. The language operates on a stack of strings. Popping from an empty stack results in an error.
| Command | Description |
|---|---|
"s" |
Push s to the stack. |
' |
Pop a string from the stack and execute it as a program in a separate thread. |
1 |
Pop a string from the stack and print it as h1. |
2 |
Pop a string from the stack and print it as h2. |
3 |
Pop a string from the stack and print it as h3. |
4 |
Pop a string from the stack and print it as h4. |
5 |
Pop a string from the stack and print it as h5. |
6 |
Pop a string from the stack and print it as h6. |
# |
Pop a string from the stack and print it as a regular string. |
* |
Pop a string from the stack and print it as a bold string. |
/ |
Pop a string from the stack and print it as an italic string. |
- |
Pop a string from the stack and print it as a bullet point. |
_ |
Pop a string from the stack and print it as an underlined string. |
% |
Duplicate top of the stack. |
+ |
Pop 2 strings from the stack, concatenate them and push the result back. |
= |
Pop 2 strings from the stack, push "TRUE" if they're equal, else, push "". |
> |
Pop 2 strings from the stack, push "TRUE" if the second element is longer than the first, else, push "". |
< |
Pop 2 strings from the stack, push "TRUE" if the second element is shorter than the first, else, push "". |
~ |
Pop a string from the stack, push "TRUE" if it is non-empty, else push "". |
& |
Pop 2 strings from the stack, push "TRUE" if both are non-empty, else, push "". |
| Pop 2 strings from the stack, push "TRUE" if at least 1 string is non-empty, else, push "". | |
? |
Push a random character to the stack. |
! |
Pop a string from the stack, if it's a custom command, execute it as a subprogram, else, execute it as a shell command and pop the entire stack which will be the arguments. |
$ |
Pop 2 strings from the stack, (re)define a variable where the first string is the name, and the second string is the value. |
@ |
Pop a string from the stack, push the value of the variable with the same name as the popped string. |
` |
Discard top of the stack. |
^ |
Pop a string from the stack, append it to the current (sub)program. |
\ |
Push the current (sub)program to the stack. |
: |
Pop 2 string from the stack, (re)define a custom command where the first string is the name, and the second string is the subprogram. |
; |
Swap 2 top elements of the stack. |
, |
Push a newline to the stack. |
. |
Halt. |
Examples
Hello, world!
"Hello, world!",+#
XKCD Random Number
"4",+#
Truth machine
"#""0":"%#\^""1":"i"%!
Where i is the input.
Infinite loop
\^
The kids choice awards
"slime"#\^
Quine
\#