arbori.cx / portable trees

Arboricx / ˈɑːrbərɪks

Portable programs.
All trees.

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.

Leaft
Stemt x
Forkt x y
Start writing tricu ↓
Loading Names and values

Source

tricu / stable

Published package

Loading Names and values…
Edits compile after a pause. Evaluation is always explicit.

Use literals, applications and bindings from the current scope. Declare imports in the source editor.


        
Interaction trace

IO actions and responses appear here.

    One calculus, a growing ecosystem

    Trees all the way down.

    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.

    Explore modules and packages

    A web server made of trees.

    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.

    Explore the registry server

    A compiler that compiles itself.

    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.

    Explore the self-hosting compiler

    Programs that inspect programs.

    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.

    Explore Tree Calculus

    IO as an interaction tree.

    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.

    Explore the IO library

    Familiar syntax.

    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.

    Read the source language guide

    Add a library