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

From Esolang
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.

Commands
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

\#

External resources