Portable Arboricx packages.
Arboricx bundles hold named exports and shared tree structure. Content-addressed storage gives trees and modules stable identities. Package a function, move it to another compatible host and apply it there.
Arboricx / ˈɑːrbərɪks
Tree Calculus makes functions and data out of the same three shapes. tricu builds a language around them, and Arboricx carries the resulting programs between hosts. Write familiar-looking code and explore how it becomes a tree you can run, inspect, and share.
tt xt x yLoading Names and values…
Use literals, applications and bindings from the current scope. Declare imports in the source editor.
Previous output · source or settings changed. Evaluate or show the definition to refresh.
IO actions and responses appear here.
One calculus, a growing ecosystem
Arboricx bundles hold named exports and shared tree structure. Content-addressed storage gives trees and modules stable identities. Package a function, move it to another compatible host and apply it there.
The ecosystem includes HTTP support and an Arboricx registry written in tricu. Tree programs handle requests, build responses and work with the content store through host IO. The same language used for the examples can serve its own packages.
Lexing, parsing, name resolution and lambda elimination are tricu programs. The compiler can compile its own source into Arboricx packages. The editor runs that packaged compiler so you can follow the journey from source to tree.
Tree Calculus combines computation with structural inspection. Leaf, Stem and Fork represent both functions and data. A program can examine another program's shape, count its nodes or compare its structure. Try the tree microscope in the editor.
A tricu program describes actions and their continuations as trees. The host responds to each request and execution proceeds with that response. The conversation example puts text output, line input and composition into practice.
tricu brings names, lambdas, recursion, pattern matching and familiar literals to Tree Calculus. Write id = (x : x), compose functions and organize modules. The compiler turns that source into executable trees.