Commit Graph

7 Commits (a76327ca0f572e7906b963cd9e301021a699ec26)

Author SHA1 Message Date
Mike Gerwitz a76327ca0f
rebirth: relibprebirth: Negate unary -
* build-aux/bootstrap/rebirth/relibprebirth.scm (-): Negate when given only
    a single argment.
2018-09-10 20:53:13 -04:00
Mike Gerwitz 6daa3501b6
rebirth: relibprebirth: Fix < and >
* build-aux/bootstrap/rebirth/relibprebirth.scm (<, >): Reverse
    comparisons.  This is quite the embarassing mess-up.  It appears that it
    was only used in one place, and so I did not notice the problem until I
    began writing test cases.
2018-09-10 20:51:01 -04:00
Mike Gerwitz a841f68d4f
rebirth: relibprebirth: (and) => #t
* build-aux/bootstrap/rebirth/relibprebirth.scm (and): Initialize to #t so
  that (and) yields #t.
2018-09-10 20:46:11 -04:00
Mike Gerwitz 7e3f3f0b0a
Gibble=>Ulambda Scheme
Gibble is still the ultimate goal, but since I seem to have gone down
precisely the path that I did _not_ want to go down (implementing a full
Scheme), this deserves to be its own project.

Oh, and Gibble is the "{General=>Graphical} Block-Based Learning
Environment".
2018-02-08 23:40:00 -05:00
Mike Gerwitz e8c9c6cdd8
rebirth: Add `eval'
* build-aux/bootstrap/rebirth.scm: Provide env to `rebirth->ecmascript-prog'.
  (rebirth->ecmascript-prog)[env-es]: New param.  Use for `_env' in
    generated self-executing ES function.
  (es:empty-env): New procedure.
* build-aux/bootstrap/rebirth/es.scm (es:raw): Remove unused macro.
  (es:envf)[env]: New parameter.  Use in place of hard-coded inherited env.
  (es:inherit-env): New procedure, extracted from proceeding.
  (lambda, let): Use it.
  (null-environment, eval): New procedures.
2018-02-08 23:11:21 -05:00
Mike Gerwitz ec43d7717a
rebirth: Add `begin'
This isn't used yet, but it's a nice thing to have available.

* build-aux/bootstrap/rebirth/es.scm (begin): Add syntatic form.
2018-02-08 23:10:39 -05:00
Mike Gerwitz 9eb8355e22
rebirth: Extract steps into separate source files
It's nice being able to do this now.

This starts to pave the path toward ultimately sharing code with Ulambda.

* build-aux/bootstrap/rebirth.scm: Extract steps 0--2 into separate source
    files.
* build-aux/bootstrap/rebirth/es.scm: New file containing step 2.
* build-aux/bootstrap/rebirth/macro.scm: New file containing step 1.
* build-aux/bootstrap/rebirth/relibprebirth.scm: New file contaiing step 0.
2018-02-08 23:10:06 -05:00