A categorical programming language
修订版 | 530f14a3d6cb9afae5b36e613341c4af10e901e3 (tree) |
---|---|
时间 | 2024-03-12 06:21:52 |
作者 | Corbin <cds@corb...> |
Commiter | Corbin |
Include zaha.
@@ -12,7 +12,7 @@ You appear to believe that: | ||
12 | 12 | [x] Syntax is what makes programming difficult |
13 | 13 | [x] Garbage collection is free [x] Computers have infinite memory |
14 | 14 | [x] Nobody really needs: |
15 | - [x] concurrency [x] a REPL [x] debugger support [x] IDE support [x] I/O | |
15 | + [x] concurrency [ ] a REPL [x] debugger support [x] IDE support [x] I/O | |
16 | 16 | [x] to interact with code not written in your language |
17 | 17 | [ ] The entire world speaks 7-bit ASCII |
18 | 18 | [ ] Scaling up to large software projects will be easy |
@@ -27,7 +27,7 @@ Unfortunately, your language (has/lacks): | ||
27 | 27 | [ ] implicit type conversion [x] explicit casting [ ] type inference |
28 | 28 | [ ] goto [ ] exceptions [ ] closures [ ] tail recursion [ ] coroutines |
29 | 29 | [ ] reflection [x] subtyping [ ] multiple inheritance [ ] operator overloading |
30 | -[x] algebraic datatypes [ ] recursive types [ ] polymorphic types | |
30 | +[x] algebraic datatypes [ ] recursive types [x] polymorphic types | |
31 | 31 | [ ] covariant array typing [x] monads [ ] dependent types |
32 | 32 | [x] infix operators [x] nested comments [x] multi-line strings [ ] regexes |
33 | 33 | [ ] call-by-value [ ] call-by-name [ ] call-by-reference [ ] call-cc |
@@ -50,7 +50,7 @@ The following philosophical objections apply: | ||
50 | 50 | [ ] Your language relies on an optimization which has never been shown possible |
51 | 51 | [x] There are less than 100 programmers on Earth smart enough to use your language |
52 | 52 | [x] ____________________________ takes exponential time |
53 | -[ ] ____________________________ is known to be undecidable | |
53 | +[x] ____________________________ is known to be undecidable | |
54 | 54 | |
55 | 55 | Your implementation has the following flaws: |
56 | 56 | [x] CPUs do not work that way |
@@ -59,8 +59,8 @@ Your implementation has the following flaws: | ||
59 | 59 | [x] Compilers do not work that way |
60 | 60 | [ ] Compilers cannot work that way |
61 | 61 | [ ] Shift-reduce conflicts in parsing seem to be resolved using rand() |
62 | -[ ] You require the compiler to be present at runtime | |
63 | -[ ] You require the language runtime to be present at compile-time | |
62 | +[x] You require the compiler to be present at runtime | |
63 | +[x] You require the language runtime to be present at compile-time | |
64 | 64 | [x] Your compiler errors are completely inscrutable |
65 | 65 | [ ] Dangerous behavior is only a warning |
66 | 66 | [ ] The compiler crashes if you look at it funny |
@@ -37,7 +37,8 @@ | ||
37 | 37 | "root": { |
38 | 38 | "inputs": { |
39 | 39 | "flake-utils": "flake-utils", |
40 | - "nixpkgs": "nixpkgs" | |
40 | + "nixpkgs": "nixpkgs", | |
41 | + "zaha": "zaha" | |
41 | 42 | } |
42 | 43 | }, |
43 | 44 | "systems": { |
@@ -54,6 +55,29 @@ | ||
54 | 55 | "repo": "default", |
55 | 56 | "type": "github" |
56 | 57 | } |
58 | + }, | |
59 | + "zaha": { | |
60 | + "inputs": { | |
61 | + "flake-utils": [ | |
62 | + "flake-utils" | |
63 | + ], | |
64 | + "nixpkgs": [ | |
65 | + "nixpkgs" | |
66 | + ] | |
67 | + }, | |
68 | + "locked": { | |
69 | + "lastModified": 1694533980, | |
70 | + "narHash": "sha256-ft0zP27uPVDINZscPxBDXwJ/G+dzUu1aZjzQr6H/yh4=", | |
71 | + "ref": "refs/heads/master", | |
72 | + "rev": "4df5975a87965bab9507e09ac60618dc4318231b", | |
73 | + "revCount": 61, | |
74 | + "type": "git", | |
75 | + "url": "git://riddler.local/zaha.git" | |
76 | + }, | |
77 | + "original": { | |
78 | + "type": "git", | |
79 | + "url": "git://riddler.local/zaha.git" | |
80 | + } | |
57 | 81 | } |
58 | 82 | }, |
59 | 83 | "root": "root", |
@@ -3,8 +3,15 @@ | ||
3 | 3 | inputs = { |
4 | 4 | nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11"; |
5 | 5 | flake-utils.url = "github:numtide/flake-utils"; |
6 | + zaha = { | |
7 | + url = "git://riddler.local/zaha.git"; | |
8 | + inputs = { | |
9 | + nixpkgs.follows = "nixpkgs"; | |
10 | + flake-utils.follows = "flake-utils"; | |
11 | + }; | |
12 | + }; | |
6 | 13 | }; |
7 | - outputs = { self, nixpkgs, flake-utils }: | |
14 | + outputs = { self, nixpkgs, flake-utils, zaha }: | |
8 | 15 | flake-utils.lib.eachDefaultSystem (system: |
9 | 16 | let |
10 | 17 | pkgs = import nixpkgs { |
@@ -77,7 +84,7 @@ | ||
77 | 84 | # Honey |
78 | 85 | python39Packages.flask purescript |
79 | 86 | # Documentation |
80 | - graphviz | |
87 | + graphviz zaha.packages.${system}.default | |
81 | 88 | # experimenting with Honey |
82 | 89 | wabt binaryen |
83 | 90 | # openapi-generator-cli yaml2json python3Packages.virtualenv |
@@ -412,7 +412,13 @@ | ||
412 | 412 | * Tile colors are chosen by sampling some underlying function at each |
413 | 413 | Voronoi center! |
414 | 414 | * Community problems |
415 | - * https://googology.fandom.com/wiki/User_blog:JohnTromp/The_largest_number_representable_in_64_bits | |
415 | + * Long-running/fast-growing functions | |
416 | + * https://googology.fandom.com/wiki/User_blog:JohnTromp/The_largest_number_representable_in_64_bits | |
417 | + * https://codegolf.stackexchange.com/questions/79620/laver-table-computations-and-an-algorithm-that-is-not-known-to-terminate-in-zfc | |
418 | + * https://codegolf.stackexchange.com/questions/79470/write-a-program-whose-nontermination-is-independent-of-peano-arithmetic | |
419 | + * https://codegolf.stackexchange.com/questions/6430/shortest-terminating-program-whose-output-size-exceeds-grahams-number | |
420 | + * https://codegolf.stackexchange.com/questions/139355/golf-a-number-bigger-than-tree3 | |
421 | + * https://codegolf.stackexchange.com/questions/18912/lifetime-of-a-worm | |
416 | 422 | * Project Euler |
417 | 423 | * take every third element in a list |
418 | 424 | * Useful for (1) and (2) |