A categorical programming language
Rev. | Time | Author | Message RSS |
23bcde0c | 2023-02-02 14:41:01 | Corbin | Debug FP multiplication somewhat. For some reason, groun... |
ec5a0689 | 2023-02-02 13:32:51 | Corbin | Finish implementing FP. Does it work? Kind of! We can ev... |
65b06ab9 | 2023-01-30 16:33:19 | Corbin | Clean up imports, fix FP unifications. FP values are sti... |
6209f4c5 | 2023-01-30 15:50:21 | Corbin | More FP. Strangely, these relations don't want to run fo... |
bacf8c18 | 2023-01-30 15:03:37 | Corbin | Really start implementing FP. 1.0 becomes 4.0, which is ... |
dee936e3 | 2023-01-30 12:54:38 | Corbin | Make jelly acceptance jelly-specific. |
455bde16 | 2023-01-30 12:08:19 | Corbin | Factor eval° more; make n-pred-maybe reversible. I'm sta... |
b5d326f9 | 2023-01-30 11:08:39 | Corbin | Implement sums; start implementing floats. |
c8cc966d | 2023-01-29 14:08:36 | Corbin | Implement relational currying. I was worried about this,... |
0f322cea | 2023-01-28 14:30:24 | Corbin | Search backwards through eval° and cammy°. I figured it ... |
# Jelly The jelly optimizer is a Cammy-to-Cammy optimizer which uses e-graphs to search for the smallest equivalent expression. The rule engine is from the `egg` library. The rules are written in a DSL embedded in Rust, along with comments explaining their provenance and correctness. To update Cargo dependencies for jelly: $ nix-shell -p crate2nix cargo $ cd jelly/ $ cargo metadata $ crate2nix generate # Movelist The movelist is a relational typechecker written in CHICKEN Scheme's dialect of miniKanren. It can typecheck a Cammy expression, or take a type representation and synthesize Cammy expressions with the given type. To update eggs for movelist: $ egg2nix movelist/eggs.scm > movelist/eggs.nix # Shell Environment The environment for developing the Cammy toolchain is contained within `shell.nix`. To update eggs for the shell environment: $ egg2nix eggs.scm > eggs.nix # Compiling to Categories The second argument to cammy-frame applies a list of functors. Each functor corresponds to a path in the hive; functor `foo` corresponds to `cats/foo/`. The list is comma-separated and applied left-to-right.
Welcome to OSDN Wiki system. Here is your chamber Wiki space.
Check Wiki Guide (English) to refer syntax and functions.
[PageInfo]
(auto generated page)
[Permissions]
view:all, edit:admins, delete/config:admins