Browser evaluator compatibility note. ===================================== Interactive examples are useful, but the browser interpreter is not the standard. ## Purpose The interactive examples in the introductory course use BiwaScheme 0.8.3. The bundle is self-hosted by r7.rs and loaded only on pages that contain an interactive block. This page records the boundary: what the browser evaluator is good for, what it cannot claim, and how numeric examples should be treated. ## Pinned Version The pinned browser interpreter is BiwaScheme 0.8.3. The vendored bundle is stored at `/assets/vendor/biwascheme/0.8.3/biwascheme-0.8.3-min.js`. The local manifest and MIT license text are stored in the same directory. The published minified bundle is about 378 KB uncompressed and about 79 KB with gzip compression. Source links: - [BiwaScheme project site](https://www.biwascheme.org/) - [BiwaScheme repository](https://github.com/biwascheme/biwascheme) ## What It Is For Use the browser evaluator for short expression-level practice: ```scheme (+ 2 3) (define (large? n) (> n 10)) (large? 12) 'finish! ``` That is enough for early lessons on expressions, names, predicates, quotation, simple lists, and small procedures. ## What It Is Not The browser evaluator is not the conformance engine for this course. Checked `.scm` files are still run with external Scheme implementations. BiwaScheme 0.8.3 documents these important R7RS differences: - It lacks `syntax-rules`. - It lacks the R7RS exception system. - It lacks the R7RS library system. - Strings are immutable. - Integers are not distinguished from floats. Because the R7RS library system is absent, browser examples cannot run lesson files that begin with imports such as this unchanged: ```scheme (import (scheme base) (scheme write) (scheme process-context)) ``` ## Numeric Tower and Exactness R7RS Scheme distinguishes exact and inexact numbers, and portable programs must be careful about exactness. Later lessons will treat exact integers, inexact numbers, rational arithmetic, and numeric tower behavior as standard-sensitive topics. BiwaScheme is useful for basic arithmetic practice, but its documented JavaScript limitation means that browser results should not be used as the authority for exactness-sensitive claims. If an example depends on exact vs inexact behavior, rational arithmetic, or a numeric tower edge case, the lesson should say so and the checked external implementation should be treated as authoritative. ## Plain Text Course Copies Interactive HTML pages should not be the only form of the course. The build currently generates non-interactive `.txt` siblings for authored lesson pages. When a course track is complete, it should also have a reviewed single-file plain-text edition.