You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
manipulang is the intermediate representation—basically a lisp, with vectors. terms in operations often represented as binary might need wrapper terms [:sum [:plus “x”]]
fake/real-paths
see L96 in cas.tree_ops
from the mismatch of how [+ 1 2] is both single-level (it’s one vector) and multi-level ( 1 and 2 are children of +)
possibly change operations so up/down etc, make sense with real path?
up: if (last current) !=0, make 0, else subtract last —wrong! see from “+” to 999 in cas.tree_ops, l96
down: add a 0
right: inc last
left: dec last
a “real” path is one you can use with what’s in @tree-atom. it leads to “a node,” which may be a vector
there should never be more than one zero at the end of a real path
the first child of a vector should never be a vector, because it is not a “real” child
advantage of “real path”: matches actual datastructure
advantage of fake path: corresponds better to meaning—but does it?
in real path, ending in 0 means it’s an operation, by looking at path alone
in real path, ending NOT in 0 means don’t know whether is vector or value by looking at path alone
however, there is an unambiguous answer to that question, w/tree access
in fake path, no way to refer to first item of vector—it’s the node as a whole
I feel like that’s bad, they should be able to select + and turn it to -
up: selects containing node
down: first child
left: left
right: right
sugar can be written for unintuitive things, but nothing can solve ambiguity or the inability to express
a “fake” path
structure
hotkeys
listeners are like middleware
for tree manipulation, they’re mapped to an “action” (keyword), which dispatches in microsoft_directory_tree
chans
key-chan
comps (board, bench, tree-manipulation)
bench is for one-off components a la devcards
todo
pdf
change backend so a single route can receive a text string, maek pdf, and return pdf