A categorical programming language
修订版 | 03bf7e79b7c5d4752fde089b7ce753e5a4efbc4d (tree) |
---|---|
时间 | 2021-09-08 11:42:47 |
作者 | Corbin <cds@corb...> |
Commiter | Corbin |
Uncurry nat/add and nat/mul, fix compilation.
This is enough to get everything unbroken up to list/gauss.
@@ -11,6 +11,7 @@ cat "$1" | ||
11 | 11 | frame=$(nix-build frame/) |
12 | 12 | jelly=$(nix-build jelly/Cargo.nix -A rootCrate.build) |
13 | 13 | <"$1" $frame/bin/frame hive/ | $jelly/bin/jelly >"$tmpdir/program.cammy" |
14 | +cat "$tmpdir/program.cammy" | |
14 | 15 | |
15 | 16 | fullname=$(basename -- $1) |
16 | 17 | name="${fullname%.*}" |
@@ -20,7 +21,7 @@ movelist=$(nix-build movelist/) | ||
20 | 21 | ty=$($movelist/bin/movelist type-check <"$tmpdir/program.cammy") |
21 | 22 | |
22 | 23 | # Compute the final piece. |
23 | -cat "$tmpdir/program.cammy" | |
24 | +sed -i -e 's,case,cammy-case,g' -e 's,cons,cammy-cons,g' -e 's,map,cammy-map,g' "$tmpdir/program.cammy" | |
24 | 25 | cat stub.scm <(echo '(cammy-run') "$tmpdir/program.cammy" <(echo "'$ty)") >"$tmpdir/$name.scm" |
25 | 26 | # Compile with Chicken. |
26 | 27 | csc -O3 -o "$name" "$tmpdir/$name.scm" |
@@ -1 +1 @@ | ||
1 | -(comp dup (uncurry nat/add)) | |
1 | +(comp dup nat/add) |
@@ -1 +1 @@ | ||
1 | -(pr (curry (comp (comp ignore zero) succ)) (curry (comp (pair app snd) (uncurry nat/mul)))) | |
1 | +(pr (curry (comp (comp ignore zero) succ)) (curry (comp (pair app snd) nat/mul))) |
@@ -1,4 +1,4 @@ | ||
1 | 1 | (comp (pr |
2 | 2 | (comp zero (pair id succ)) |
3 | - (comp (pair (comp fst succ) snd) (pair fst (uncurry nat/mul))) | |
3 | + (comp (pair (comp fst succ) snd) (pair fst nat/mul)) | |
4 | 4 | ) snd) |
@@ -1 +1 @@ | ||
1 | -(pr (curry (comp ignore zero)) (curry (comp (pair app snd) (uncurry nat/add)))) | |
1 | +(uncurry (pr (curry (comp ignore zero)) (curry (comp (pair app snd) nat/add)))) |
@@ -1 +1 @@ | ||
1 | -(comp dup (uncurry nat/mul)) | |
1 | +(comp dup nat/mul) |
@@ -1 +0,0 @@ | ||
1 | -(comp dup (uncurry nat/mul)) |
@@ -1 +1 @@ | ||
1 | -(fold zero (uncurry nat/add)) | |
1 | +(fold zero nat/add) |