Commit Graph

15 Commits

Author SHA1 Message Date
William J. Bowman
1182c477dc
Reorganized context functions; style fixes
* Reorganized, reimplemented, and renamed many functions related to
  contexts (telescopes Ξ and apply context Θ)
* Moved some test suite stuff to the top
* Various style fixes in comments, indentation and such
2015-09-30 23:19:45 -04:00
William J. Bowman
9eca5d6222
Reindent and renaming
* Renaming Σ and Γ methods to be named more like dictionary functions,
  since Σ and Γ are essentially maps.
* Reindent various bits of code
2015-09-30 17:58:36 -04:00
William J. Bowman
a3c3b0fca7
Fixed/sped up eliminator reduction. closes #20
* Made the primitive form of elim (elim t_0 t_1), allowing this form to be
  considered a value when t_0 and t_1 are values.
* Moved definition of values to reduction language, and fixed it. This
  fixed issues with unique decomposition, and thus fixed reduction of
  eliminators.
* Enabled caching in apply-reduction-relation* to speed up results of
  recursive calls.
2015-09-29 17:56:37 -04:00
William J. Bowman
cf6f81fbd4
Added single step evaluation abilities. Closes #27
* Added single step meta-function to core
* Expose step/syn in redex-lang
* Added macro to sugar for convenience use
* Updated relevant docs (also fixed bug in reflection docs)
2015-09-29 15:41:21 -04:00
William J. Bowman
0f25b53d75
Slew of fixes to reflection interfaces
Previously, reflection procedures did not properly reify/reflect syntax
after evaluating in Redex. This limited compositionality of reflection
features.

No longer. Now all reflection procedures should reify their results back
into Cur syntax, and only top-level evaluation should result in Redex
datums (or explicit calls to cur->datum).
2015-09-29 15:17:21 -04:00
William J. Bowman
e54c7e5bb5
Added query-type command to sugar 2015-09-25 20:08:07 -04:00
William J. Bowman
9681fbd9e0
Restricted elim curnel syntax
The curnel was documented as having a restricted syntax, but this was
not actually enforced. Now it is.
2015-09-25 17:50:27 -04:00
William J. Bowman
bf867bca7f
Moved some features out of curnel
* run is user-definable through the existing reflection features; moved
  to sugar.
* define need not have special function support in curnel; moved to
  sugar.
* fixed relevant documentation
2015-09-25 13:36:44 -04:00
William J. Bowman
fa9389ee7f
Hacks to make cur work in the REPL
Look I don't want to talk about it, but now you can use Cur in DrRacket.
Closes #18
2015-09-23 21:35:27 -04:00
William J. Bowman
e4bf99c277
Syntax parse for better error messages 2015-09-22 22:59:07 -04:00
William J. Bowman
bfc72d8fd3
Documented reflection features 2015-09-22 18:18:26 -04:00
William J. Bowman
a3094b55bb
Fixed top 2015-09-22 15:32:45 -04:00
William J. Bowman
8681282ef9
Added top-interactive support/fixed top-level eval
Also fixed some random stylistic things
2015-09-22 14:06:03 -04:00
William J. Bowman
23c1b56065
Knocked off a bunch of TODOs
* Removed some TODOs that were already completed
* Added cur-match, to abstract the common (syntax-parse (cur-expand syn) ...)
  pattern
2015-09-15 18:53:53 -04:00
William J. Bowman
3ce14c3871
Refactored core
Moved all curnel code into curnel/, and split the two kernel modules
into separate files. Now the trusted core and the module/#lang stuff are
in separate files. The #lang is now reprovided by "cur.rkt", which
should also provide core agnostic sugar.
2015-09-15 18:02:36 -04:00