Emi Simpson
88399fff69
Implement compilation
2024-03-15 20:21:46 -04:00
Emi Simpson
673292e913
Add a README
2024-03-15 20:21:46 -04:00
Emi Simpson
aa93a85d7c
Add missing import
2024-03-15 20:21:45 -04:00
Emi Simpson
79c503678e
Added merge_with
2024-03-15 20:21:45 -04:00
Emi Simpson
8f69581893
Pair down generated js a bit
2024-03-15 20:21:45 -04:00
Emi Simpson
cdf33bd6da
Add compilation to JavaScript
2024-03-15 20:21:45 -04:00
Emi Simpson
f5d999a3dd
Don't use recursion in evaluate :(
2024-03-15 20:21:44 -04:00
Emi Simpson
d94ff158f7
Make function type rendering prettier
2024-03-15 20:21:44 -04:00
Emi Simpson
97cd81dc43
Add some more stuff to the example file
2024-03-15 20:21:44 -04:00
Emi Simpson
5c869516e2
Upgrade the REPL UI
2024-03-15 20:21:44 -04:00
Emi Simpson
d5649b0523
Return actually analagus types in BranchMismatch
2024-03-15 20:21:43 -04:00
Emi Simpson
ca685d7ded
Fix substitution not working for polytypes
...
honestly i don't know how i didn't catch that sooner
2024-03-15 20:21:43 -04:00
Emi Simpson
fb55346003
Make typechecking slightly less buggy
...
- The statement ["x", "x"] no longer typechecks in the empty context
- The statement ["ident": {"x": "x"}] now correctly generalizes
- The statement ["compose", "compose", "compose"] no longer goes into an infinite loop
2024-03-15 20:21:43 -04:00
Emi Simpson
792674797d
Buggy typechecking
2024-03-15 20:21:43 -04:00
Emi Simpson
907bc5d505
Add an example json
2024-03-15 20:21:43 -04:00
Emi Simpson
224ec0bc98
Add a repl
2024-03-15 20:21:42 -04:00
Emi Simpson
0383bc5b82
Take out the old recursion thingy
2024-03-15 20:21:42 -04:00
Emi Simpson
a49b7b5baf
Add let statements
2024-03-15 20:21:42 -04:00
Emi Simpson
c27852daba
Add in IR generation
2024-03-15 20:21:42 -04:00
Emi Simpson
92d458de85
Add partition
2024-03-15 20:21:41 -04:00
Emi Simpson
206c0a0ec0
Start making a grammar then realize there's a builtin json parser
2024-03-15 20:21:41 -04:00
Emi Simpson
bc2a2e2a8c
Functional operation semantics
2024-03-15 20:21:41 -04:00
Emi Simpson
c4098d8c2b
Add parse_, expand some doc tests
2024-03-15 20:21:41 -04:00
Emi Simpson
08547aea2f
Add a combinator parser
2024-03-15 20:21:40 -04:00
Emi Simpson
dfdbda4406
Fixed a bug which caused unnecessary infinite recursion
2024-03-15 20:21:40 -04:00
Emi Simpson
73e9771e6c
Rename main -> lab2
2024-03-15 20:21:40 -04:00
Emi Simpson
d39a78fae7
Add a main! Now it works!
2024-03-15 20:21:40 -04:00
Emi Simpson
6f0d15ee3f
Finagle some types and imports
2024-03-15 20:21:39 -04:00
Emi Simpson
9d6da82dd4
Fix broken tests in build_oracle
2024-03-15 20:21:39 -04:00
Emi Simpson
0605b759f0
Fix failing doctests in lex.py
2024-03-15 20:21:39 -04:00
Emi Simpson
57130c9233
Clean up some unused functions
2024-03-15 20:21:39 -04:00
Emi Simpson
6353522827
Get resolution working for real!
2024-03-15 20:21:38 -04:00
Emi Simpson
475c324e64
Add next_generation
2024-03-15 20:21:38 -04:00
Emi Simpson
08e02c523a
Add is_false
2024-03-15 20:21:38 -04:00
Emi Simpson
fe8d9b766c
Allow hashing clauses
2024-03-15 20:21:38 -04:00
Emi Simpson
65a8c0042f
Added FSet and fset
2024-03-15 20:21:37 -04:00
Emi Simpson
f0d7ee2d5e
Add derive2
2024-03-15 20:21:37 -04:00
Emi Simpson
b046152a4c
Add a derive method
2024-03-15 20:21:37 -04:00
Emi Simpson
122b810b73
Add function to merge clauses
2024-03-15 20:21:37 -04:00
Emi Simpson
b8cb7d864c
Add drop_none
2024-03-15 20:21:36 -04:00
Emi Simpson
db2f9710dd
Add a cancelation checker
2024-03-15 20:21:36 -04:00
Emi Simpson
ad4ed220b6
Add sub_all_clause
2024-03-15 20:21:36 -04:00
Emi Simpson
46bbcca1b8
Add uncurry2
2024-03-15 20:21:36 -04:00
Emi Simpson
8d3edb1ea8
Add a notation of cantions
2024-03-15 20:21:35 -04:00
Emi Simpson
1cf1acaa08
Add in support for unification
2024-03-15 20:21:35 -04:00
Emi Simpson
3028075176
Add <= as an alias for map
2024-03-15 20:21:35 -04:00
Emi Simpson
4b4f9037cf
Ignore some unhelpful type errors
2024-03-15 20:21:35 -04:00
Emi Simpson
eacf7542e5
Fixed order in Subst __repr__
2024-03-15 20:21:34 -04:00
Emi Simpson
642225b285
Add << as an alias for binding a result
2024-03-15 20:21:34 -04:00
Emi Simpson
ad31d63450
Implement substitution
2024-03-15 20:21:34 -04:00