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.
Ændʒirae
Ændʒirae (pronounced en-ji-rē) is yet another programming language I made up, this time using a sowing-based loop-over system starting at the middle. The first part of your code should look like this:
{}{} . . . {} {}{} . . . {} {}{} . . . {}
{}{} . . . {} {}{} . . . {} {}{} . . . {}
. . . . . . . . . . . . e.t.c. . . . . . .
. . . . . . . . . . . . . . . . . .
{}{} . . . {} {}{} . . . {} {}{} . . . {}
Now call the height of each 2d plane a, the width of each one b, and the number of them c. Start at the pair of curly brackets with coordinates [a/2, b/2, c/2], specifically the ceiling of all of those. You begin moving in the +x (positive x) direction. Set whatever number is in that pair of curly brackets to 0, then begin moving, placing one stone in each pair, until you run out of stones from the starting pit.
After this part of your code, you put in a list of commands. Here are the different commands:
| Instruction | Meaning |
|---|---|
| x, y, z, c, b, a | Set direction to +x, +y, +z, -x, -y, and -z respectively. |
| j{x,y,z} | Jump to the pair of curly brackets at coordinates [x,y,z]. |
| i{}{}{} | If the given coords in the first argument obeys the conditional in the second, do the action in the third argument. |
| e{} | The else-statement, basically the if-statement. It goes in tandem with it. |
| g{n} | Go to the nth line which is not empty. |
There is also +-*/% mathematics and comments. ! is a unequal operator.
Just before each command, sow all stones in the current pit using the aforementioned sowing behavior. Swap the +x direction for whichever is the current direction.
Computational class
Absolutely no idea.
Example programs
# This one abuses the looping mechanic.
{0} {0} {0}
L{72,101,108,108,111,44,32,119,111,114,108,100,33} # List
i{1,1,2}{!Lr}{+} # If the {1,1,2} value is not equal to the list value at the position
# corresponding to how many times this line has been evaluated, increment.
e{a} # Output as ASCII.
g{2}
The program self-halts after 33 because the list has no next element.