Merge content store
This commit is contained in:
26
README.md
26
README.md
@ -10,14 +10,14 @@ tricu is the word for "tree" in Lojban: `(x1) is a tree of species/cultivar (x2)
|
||||
|
||||
## Features
|
||||
|
||||
- Tree Calculus operator: `t`
|
||||
- Immutable definitions: `x = t t`
|
||||
- Lambda abstraction: `id = (a : a)`
|
||||
- List, Number, and String literals: `[(2) ("Hello")]`
|
||||
- Function application: `not (not false)`
|
||||
- Higher order/first-class functions: `map (a : append a "!") [("Hello")]`
|
||||
- Intensionality blurs the distinction between functions and data (see REPL examples)
|
||||
- Simple module system for code organization
|
||||
- Tree Calculus **operator**: `t`
|
||||
- **Immutable definitions**: `x = t t`
|
||||
- **Lambda abstraction**: `id = (a : a)`
|
||||
- **List, Number, and String** literals: `[(2) ("Hello")]`
|
||||
- **Function application**: `not (not false)`
|
||||
- **Higher order/first-class functions**: `map (a : append a "!") [("Hello")]`
|
||||
- **Intensionality** blurs the distinction between functions and data (see REPL examples)
|
||||
- **Content-addressed store**: save, version, tag, and recall your tricu terms.
|
||||
|
||||
## REPL examples
|
||||
|
||||
@ -52,6 +52,16 @@ tricu < !reset -- Clear all REPL definitions
|
||||
tricu < !version -- Print tricu version
|
||||
```
|
||||
|
||||
## Content Store
|
||||
|
||||
tricu uses a "content store" SQLite database that saves and versions your definitions persistently.
|
||||
|
||||
* **Persistent definitions:** Any term you define in the REPL is automatically saved.
|
||||
* **Content-addressed:** Terms are stored based on a SHA256 hash of their content. This means identical terms are stored only once, even if they have different names.
|
||||
* **Versioning and history:** If you redefine a name, the Content Store keeps a record of previous definitions associated with that name. You can explore the history of a term and access older versions.
|
||||
* **Tagging:** You can assign tags to versions of your terms to organize and quickly switch between related function versions.
|
||||
* **Querying:** The store allows you to search for terms by name, hash, or tags.
|
||||
|
||||
## Installation and Use
|
||||
|
||||
You can easily build and run this project using [Nix](https://nixos.org/download/).
|
||||
|
Reference in New Issue
Block a user