Inverse Bookkeeper's many, pattern → many
Given a valid bookkeeper's pattern, replaces the stack with what would've been removed by evaluating that pattern. Patterns
Sandbox Integer →
Stores the entire stack below the top n elements into the ravenmind, without deleting the ravenmind's contents. This is useful for macros and hexes that utilize Thoth's Gambit. Patterns
Map List, Pattern List → List
Thoth's Gambit, but the inputs are reversed and the rest of the stack is ignored.
Macros used: Sandbox, Un-Sandbox Patterns
Map II List, List, Pattern List → List
For each element in the first list, put the element of that index from both lists onto the stack, then evaluate the pattern list.
Note: the first list must be ≤ the length of the second list.
Macros used: Sandbox, Un-Sandbox, Uncapped Counter's Queue II Patterns
Complex Multiplicative Distillation vector, vector → vector
Takes 2 vectors representing complex numbers and multiplies them together, with the result being in the form of a vector. The Z component of the vectors is ignored. Patterns
Perfect Counter's Queue num → [num]
Yet another Counter's Queue. Given an integer n, generates a list of all integers from 0 to n-1. This version uses no meta-eval. Patterns
Numerical Zipper Distillation [num/vec], [num/vec] → [[num]] Zips two lists using no meta-eval, by converting them to matrices, stacking them, and then converting the resulting matrix back. Mishaps if any of those intermediate matrices wouldn't be rectangular, or if there are any non-numerical iotas (ie. anything other than numbers or vectors) in the lists. For example:
#define Numerical Zipper Distillation (SOUTH_EAST dawaqawad) = [num/vec], [num/vec] -> [[num]]
// A=[num], B=[num] -> [[A1, B1], [A2, B2], ...]
// A=[vec], B=[num] -> [[A1x, A1y, A1z, B1], [A2x, A2y, A2z, B2], ...]
// A=[num], B=[vec] -> [[A1, B1x, B1y, B1z], [A2, B2x, B2y, B2z], ...]
// A=[vec], B=[vec] -> [[A1x, A1y, A1z, B1x, B1y, B1z], [A2x, A2y, A2z, B2x, B2y, B2z], ...]
// mishaps if the corresponding matrix wouldn't be rectangular
{
// check if the lists are 3 items long
Gemini Decomposition
Abacus Purification
Numerical Reflection: 3
Equality Distillation
Rotation Gambit II
// zip the lists
Transformation Purification
Jester's Gambit
Transformation Purification
Jester's Gambit
Tower Distillation
// if n==3, add an extra column at the start so it doesn't convert to a list of vectors
// talia why do i have to do this :(
Prospector's Gambit
{
Sprawling Distillation
Bookkeeper's Gambit: v-
}
Flock's Disintegration
Augur's Exaltation
// make the column 1xN - we don't know N statically because there could be 0, 1, or 2 vectors
Prospector's Gambit
Restoration Purification
Abacus Purification
Numerical Reflection: 1
Zero Distillation
Rotation Gambit II
Hermes' Gambit
// convert back to a list, and remove the extra entry if n==3
Restoration Purification
Jester's Gambit
{
Speaker's Decomposition
Nullary Reflection
}
Flock's Disintegration
Augur's Exaltation
Hermes' Gambit
Bookkeeper's Gambit: v
}
#define Muninn's Purification (NORTH_EAST qeewdweddwdw) = any -> any
// reads the ravenmind or a default value
{
Muninn's Reflection
Gemini Decomposition
Nullary Reflection
Equality Distillation
Rotation Gambit II
Augur's Exaltation
}
Huginn's Gambit II any →
If the ravenmind is null, sets its value. Patterns