owned this note
owned this note
Published
Linked with GitHub
# 05AB1E - Feature Requests
## Note
- [ ] Adjust documentation
## Requests
- [x] A version of `Δ` that collects all intermediate results (assigned to `.Γ`)
- [x] Left-to-right fold ([reference](https://chat.stackexchange.com/transcript/message/45812666#45812666))
- [x] Loop subprogram command from [**1**, **n**] ([reference](https://chat.stackexchange.com/transcript/message/45933056#45933056)) (assigned to `E`)
- [x] Replace and Insert functions ([reference](https://chat.stackexchange.com/transcript/message/45984894#45984894))
- [x] Documentation of `ǝ` ([reference](https://chat.stackexchange.com/transcript/message/45984213#45984213))
- [x] Unary sign function (like `.S`, where the second argument is always **0**) (added as `.±`)
- [x] `≥` and/or `≤` functions ([reference](https://chat.stackexchange.com/transcript/message/46036456#46036456)) (`≥` is assigned to `@`)
- [ ] Default arguments for binary (or even ternary) commands/functions ([reference](https://chat.stackexchange.com/transcript/message/46036583#46036583))
- [ ] Documentation for compression ([reference](https://chat.stackexchange.com/transcript/message/46049055#46049055))
- [x] More matrix manipulation commands ([reference](https://chat.stackexchange.com/transcript/message/46053295#46053295))
- [x] `Å\` → Left diagonal of matrix
- [x] `Å/` → Right diagonal of matrix
- [x] `ÅU` → Upper triangular matrix
- [x] `ÅL` → Lower triangular matrix
- [x] Columns of matrix
- [ ] One byte subcommands for filter, rather than a subprogram ([reference](https://chat.stackexchange.com/transcript/message/46069527#46069527)) (→ perhaps sort by?)
- [x] `d` working on floats as well (acting like an is_positive function).
- [ ] The following commands as 2-byters:
- [x] `w` → `.Z`
- [x] `@` (no implement?)
- [ ] `§`
- [ ] `™`
- [x] `š` → `.š`
- [x] `ª` → `.ª`
- [x] Reduce?
- [x] Conversion from/to Roman numerals ([reference](https://chat.stackexchange.com/transcript/message/46142498#46142498)) (assigned to `.X` and `.v`)
- [x] List subtraction
- [x] Floor
- [ ] Repr
- [x] Append (implemented as `ª`)
- [x] Prepend (implemented as `š`)
- [x] Interleave
- [ ] Interleave then reduce function on each
- [x] Scan → Implemented as cumulative reduce left and right → `Å«` and `Å»`
- [ ] One byte not-all equal command
- [x] Integer partitions (assigned to `Ŝ`)
- [ ] Break out of all command
## Changes and new features
- [x] Float literals = `1.5` or `.7`
- [x] Infinite list = `∞`
- [x] `E` no longer pushes evaluated input
- [x] New command -> `[1, 2, 3, 4, 5] 2 <command>` → `[[1, 3, 5], [2, 4]]`
- [x] Pairwise on pairs no longer applies the command only on pairs.
- [x] `d` becomes _is\_numeric_ (`\d+`) rather than _is\_number_
- [x] `ø` and `ζ` zip(b) if b is list of lists else zip(a, b)
- [x] `ζ` → pop ((a),b),c
- [x] if c is list of lists: zip(c\) with `space` filler
- [x] else if c is list: zip(b, c) with `space` filler
- [x] else if b is list of lists: zip(b) with `c` filler
- [x] else zip(a, b) with `c` filler
- [x] Split on function
- [x] ``` ` ``` is now peel rather than flatten
- [x] n-th permutation of 1..x (assigned to `.I`)
- [x] Combinations from (assigned to `.Æ`, b defaults to 2 if b is a list)
- [x] Intersperse (`.ý`)
- [x] <s>String with separators (i.e. `"123¿456¿789"` → `["123", "456", "789"]`)</s>
- [x] Custom base for converting from/to base arbitrary.
- [x] `δ` rangifies arguments when not list.
- [x] `.Ó` Number from prime exponents.
- [x] `.¢` Non-vectorizing version of count.
- [x] `.Q` Non-vectorizing version of equals.
- [x] `._` Rotate by n.
- [x] <s>`µ` Pops a and pushes the range variable such that the counter variable is a</s>
- [x] Mirror (re-assigned to `º`)
- [x] `.o` is no longer deprecated.
- [x] Cycle command (added as `Þ`).
- [x] `λ` recursive list generation.
- [ ] Flags
- [x] `j` contains flag
- [ ] No implicit input popping?
- [x] Group by (assigned to `.γ`).
- [x] Drop command: `a[b:]` (added as `.$`)
- [x] Enumerate inner (assigned to `.ā`).
- [x] Apply function on every nth index (assigned to `Å€`).
- [x] Find index of list in list (flat index, assigned to `.k`).
- [x] Convert from/to base arbitrary with custom base
- [x] Infinite replacement vectorizes
- [x] Single replacement does not vectorize
- [x] First replacement does not vectorize
- [x] `à` and `ß` don't extract but rather pop the entire element
- [x] Split-with function (added as `.¡`)
- [x] 2-digit compressed number (assigned to `Ž`)
- [x] Continue function (assigned to `.Þ`)
- [ ] Canvas (`length(s)`, `char(s)`, `pattern(s)`):
- [x] `val, val, val` → Simple one char writing
- [x] `val, val, vals` → Write for each direction
- [x] `val, vals, val` → Split string into separate chars and cycle
- [x] `val, vals, vals` → Write for each direction where the string is split and cycled.
- [x] `val, val, list` → Same as `val, val, vals`
- [x] `val, vals, list` → Same as `val, vals, vals`
- [x] `val, list, val` → Same as `val, vals, val`
- [x] `val, list, vals` → Same as `val, vals, vals`
- [x] `val, list, list` → Same as `val, vals, vals`
- [x] `list, val, val(s)` → For each length, execute and reduce with `val, val, val(s)`
- [x] `list, vals, val(s)` → same as `list, val, val(s)`
- [x] `list, val, list` → Pair each element from the length and the directions (with zip) and parse them as `vvv` programs.
- [x] `list, list, val(s)` → For each char, parse as `list, val(s), val(s)` programs.
- [x] `list, list, list` → Zip all three arguments and parse as separate programs.
- [x] Functions inside directions list (like half length etc.)
- [x] Common patterns (like `+` or `×`)
- [x] Return to origin (`8`)
- [ ] Cursor skip(?)
- [x] For loop from 1..n
- [x] Replace and insert functions
- [x] Float parsing with negative floats
- [x] `₁₂₃₄₅₆` related to recursive programs
- [ ] Streams from continued fractions?
- [x] **pi** and **e** now are infinite streams
- [x] `.å` is non-vectorizing
- [x] Index of list (flattened) in list
- [ ] Escape chars when printing
- [x] Exception handling
- [x] `|` retrieves inputs as strings and places them in an array until a newline or eof is found.
- [x] Nearest prime (assigned to `Ån`)
- [x] Next prime (assigned to `ÅN`)
- [x] Prev prime (assigned to `ÅM`)
- [x] Intersected mirror is now assigned to `.º`
- [x] If `f(a, b)` fails, do `f(b, a)`
- [x] Implicit conversion float to int when int is necessary.
- [ ] Make pairwise on pairs work again.
- [x] `.V` does not need to quote string when it contains `ÿ`
- [ ] Stream from Regex
- [x] Find first `.Δ`
- [x] Find first index `ÅΔ`
- [ ] Binary ops to subcommand programs? (e.g. `w%3`)
- [x] Fix powerset bug
- [x] Input parsing
- [x] Document `.i` command
- [x] Join converts ints to chars bug
- [ ] Occurrences of a string/list
- [x] Run-length encoding/decoding (assigned to `Åγ` and `ÅΓ`)
- [x] Deck shuffle (assigned to `Å=` and `Å≠`)
- [x] Starts/ends with (assigned to `Å?` and `Å¿`)
- [ ] Check whether `µ` alters the stack and push `N` if not