{"size": 903, "ext": "scrbl", "max_stars_repo_path": "scribblings/envlang.scrbl", "max_stars_repo_name": "envlang/racket", "max_stars_repo_stars_event_min_datetime": "2021-03-21T17:00:11.000Z", "max_stars_repo_stars_event_max_datetime": "2021-03-21T17:00:11.000Z", "max_issues_repo_path": "scribblings/envlang.scrbl", "max_issues_repo_name": "envlang/racket", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "scribblings/envlang.scrbl", "max_forks_repo_name": "envlang/racket", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": 1, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 32.25, "max_line_length": 101, "alphanum_fraction": 0.7530454042}
#lang scribble/manual

@title{envlang: an experimental language with first-class environments}

@author[@author+email["Suzanne Soy" "racket@suzanne.soy"]]

@defmodule[envlang/rkt]

An implementation which "escapes" to the Racket library for a certain number of basic building blocks

@racket[@#,hash-lang[] @#,racketmodname[s-exp] @#,racketmodname[envlang/rkt]]

See @racketmodname[test-rkt] for examples

@defmodule[envlang/tiny]

An implementation which starts with a tiny set of
primitives, and builds the basic building blocks using
those. The building blocks (lists, strings, associative
tables) are built in a naive and inefficient way.

@racket[@#,hash-lang[] @#,racketmodname[s-exp] @#,racketmodname[envlang/tiny]]

@(table-of-contents)
@include-section[(submod "../test-tiny.hl.rkt" doc)]
@include-section[(submod "../demo-rkt.hl.rkt" doc)]
@include-section[(submod "../demo2-rkt.hl.rkt" doc)]
