A list of all the patterns I've discovered, as well as what they do.
Jumble iotas are a highly versatile and expressive method of stack manipulation; a single jumble iota can copy, remove, and reorder the stack while being highly readable and instantly understandable.
When a Hex tries to process a jumble iota, a number of iotas from the stack indicated by the first number in the jumble iota are popped.
These popped iotas are stored on a temporary list called the reference list. Then, the list of positive integers indicated by the jumble iota are read one by one, indexing into the reference list and pushing the iota to the stack.
The jumble iota 2 [1 0] will pop two iotas off the stack. Then, it will push the iota at index 1 of the reference list, followed by the iota at index 0. In practice, it is identical to Jester's Gambit.
Jumbling Gambit (number, list → jumble)
Creates a jumble iota corresponding to the argument count and the list of numbers.
Jumbling Decomposition (jumble → number, list)
Dissolves a jumble iota back into a number and a list of numbers.
These patterns perform simple integer operations on an imaginary counter called the soroban. They may be useful when Ravenmind is occupied or unnecessarily complicated, for example to count iterations in a Thoth's loop.
Soroban Reflection (→ number)
Pushes soroban's current value and then increases it. Starts at 0.
Soroban Gambit
Resets the soroban to 0.
Soroban Gambit II (number →)
Pops a number from the stack and sets the soroban to it.
If the provided pattern list mishaps while being cast, the remainder of the list will be skipped and the main Hex continues without incurring the effects of the mishap. Pushes whether the pattern list mishapped.
Patterns documented on the next pages can request further information on the specific mishap.
Keep moving forward.
Starts with the first two elements of the list and casts the Hex on them. Then, the top iota remaining after casting and the next element in the list are placed on the stack and casted upon, repeating until the entire list has been exhausted. The top iota after all that is finally pushed onto the stack.
Euler did music too, you know
This pattern seems useless but is helpful in conjunction with Charon's Gambit or Janus' Gambit as the "other branch". Executing it does not consume an operation, consume media, produce particles, or have any other impact on the world.
The only winning move is not to play.
It's useful to end a Hex early once it has reached some desired state because it can bypass the "containment" of Hermes' Gambit and Thoth's Gambit unlike Charon's Gambit.
It is always important to know when something has reached its end.
This pattern is useful in order to break out of Hexes if certain programmed conditions are not met.
Order in the court.
It's extremely versatile and I can mend almost any error in my stack using Bookkeeper's Gambit, pushing iota after a dive, and transforming surfaced iota. It was named after a goddess of mourning and rivers, lending to how it buries/dives down into the stack.
... the unknowns of time travel... is akin to descending blindly into the depths of the freezing water and reappearing as an acorn.
This pattern can be useful to implement "guard clauses" for multiconditional loops. For example, after getting a list of entities, I may want to only target entities based on some large list of conditions. Rather than a mess of deeply nested conditionals, I can simply continue to the next iteration if any of the conditions fail, skipping the action.
You shall not pass!
This pattern pops an iota and schedules a new iteration of Thoth's to come right after the current one, with the popped iota being the top of the stack. It may be helpful to imagine it as the iota being added to the front of the list that I provided for Thoth's to iterate over.
Do not go where the path may lead, go instead where there is no path... and leave a trail.
Acts almost identically to its sibling pattern, but places the iteration at the end. I have read scrolls detailing techniques using these twin patterns called depth-first search and breadth-first search.
Explore the surface before diving deep.
While I have heard of self-producing Hexes called quines used to make infinite loops, they can be slightly unwieldy to work with. This gambit simplifies that process by just repeatedly casting a list until it runs out of evaluations or encounters a Charon's Gambit. The Ravenmind and stack are carried across iterations.
One always finds one's burden again... One must imagine Sisyphus happy.
After each iteration, it demands a number at the top of the stack which will correspond to that iota. At the end of the gambit, a list is pushed with the iota sorted by that number in increasing order. The order of identically numbered iota are kept. If it encounters Charon's Gambit, it will create a sorted list with only the iota it has come across.
Shuffling is the only thing which Nature cannot undo.