#Rain1’s "Tarot" #Scheme compiler is a Scheme compiler written in 1907 lines of Scheme, which (when compiled) runs on top of a virtual machine implemented in 2033 lines of C, can compile itself, and can be run from plain sources on the Tinyscheme interpreter in about 10 minutes. #small-is-beautiful #bootstrapping
on 02026-07-30Dorai Sitaram’s Teach Yourself #Scheme in Fixnum Days #ebook, specifically the section about McCarthy’s amb operator for nondeterministic computing, implemented using #continuations. This may be the earliest thing I found that calls amb an “angelic operator”.
Scm2wasm: A #Scheme to #WASM compiler in 600 lines of C, making use of WASM GC #compilers #toread. wasmtime -Wgc --invoke start output.wasm
#Chicken #Scheme comes without a hash table implementation, but there’s a SRFI-69 egg.
on 02025-07-21(import modulename) is how you import modules in #Chicken #Scheme. #documentation
#Chicken #Scheme has modules so you can (import (chicken random)) to use random numbers. #documentation
#PDF of the AIM-559 #paper from 01980 on the "SCHEME-79" #Scheme chip #hardware by #GLS. Badly scanned
on 02024-08-25#PDF #paper AIM-514 from 01979 by #GLS, on #hardware designed to run #Scheme #Lisp
on 02024-08-25Main "Wisp" #Scheme (#Guile) dialect page, with screencasts and #Emacs Lisp support and so on
on 02024-01-28#Wisp is a whitespace-sensitive #syntax for #Scheme (so far implemented only for #Guile), standardized as #SRFI 119
on 02024-01-28why #Scheme didn’t have read macros at least as of #R6RS
on 02024-01-28#SRFI 204 documents the Wright–Cartwright–Shinn pattern matcher that is included in many #Scheme implementations including #Guile
on 02023-11-02jcowan’s "Steme" statically-typed dialect of #Scheme #Lisp
on 02023-09-04the #documentation for #Scheme #performance in #Racket
on 02023-09-02The most widely supported #looping construct in #Scheme is #SRFI 42.
on 02023-09-01The R7RS work-in-progress proposal for a #looping macro for #Scheme.
on 02023-09-01Taylor Campbell’s foof-loop proposal for a #looping macro for #Scheme.
on 02023-09-01Olin Shivers’s apparently unimplemented proposal from ICFP 02005 of a #looping macro for #Scheme. Seems a lot like Haskell do-notation.
on 02023-09-01Sam Tobin-Hochstadt wrote a disassemble command for #Racket #Scheme. % raco pkg install disassemble > (require disassemble) > (disassemble f)
a #SRFI from 02022 that reconciles #Scheme #records from R6RS and R7RS.
on 02023-07-09#Oleg thinks undelimited #continuations in #Scheme were a mistake!
on 02023-07-09notes on hacking #Chez #Scheme and #SBCL #Common-Lisp, with special attention to startup times
on 02023-07-09evidently #R7RS #Scheme adopted SRFI-9 #records!
on 02023-07-09#SRFI 131 for #Scheme is Cowan and Clinger’s 02015 reduction of SRFI 99 to be implementable with only syntax-rules and not a more powerful macro system. #records
#SRFI 99 for #Scheme is Clinger’s 02008 simpler alternative to the appalling R6RS record system in SRFI 76, with a syntactic layer that is an extension of SRFI 9. This is ERR5RS-compatible. Note that Clinger’s name is also on SRFI 76! #records
on 02023-07-09#SRFI 76 for #Scheme is the 02005 proposal for R6RS #records, by Clinger, Dybvig, Sperber and van Straaten (based on Pavel Curtis’s 01989 proposal, Bill Rozas’s work, Norman Adams’s work, T, CScheme, etc.), which was withdrawn as previously planned when R6RS was done. It mentions that PLT Scheme (Racket) allows (define-struct point (x y)), but it doesn’t. All the examples in the “examples” section are too horrific to repeat here.
#SRFI 57 for #Scheme is van Tonder’s 02004 approach to defining #records, extending SRFI 9, permitting abbreviated syntax (define-record-type node (make-node left right)), which I’m not sure defines left and right functions.
#SRFI 9 for #Scheme is Kelsey’s 01999 approach to defining #records. “Each new record type is distinct from all existing types, including other record types and Scheme’s predefined types.” Given (define-record-type :pare (kons x y) pare? (x kar set-kar!) (y kdr)) you have functions pare?, kons, kar, kdr, and set-kar!.
#PDF of Dybvig's #dissertation on #Scheme, explaining his high-performance stack-copying implementation for Chez #Scheme. The discussion of supporting mutation in the stack model begins in §4.5 on p.98 (108/190).
on 02023-07-03#PDF of Dybvig's #dissertation on #Scheme, explaining his high-performance stack-copying implementation for Chez #Scheme. The discussion of supporting mutation in the stack model begins in §4.5 on p.98 (108/190).
on 02023-07-03the announcement of Chibi #Scheme #smallisbeautiful
on 02021-02-09#PDF of Henry Wu’s #Scheme 86 #hardware #paper.
on 02020-06-23#Scheme written in #Forth in Julia. #interpreters
on 02018-10-18scanned #PDF of the original 1975 AI Lab memo defining #Scheme, “Scheme: An interpreter for extended lambda calculus”
on 02017-05-19The wiki for the #Scheme working group, with R7RS and all previous versions of the Scheme standard
on 02017-05-19Darius’s new dialect of #Lisp, kind of based on #Scheme but more based on pattern-matching and E. Depends on Chez Scheme.
on 02017-05-19#SICP with a #Scheme REPL in the browser. #explorable-explanations
on 02017-04-30Chicken #Scheme comes with a gap #buffer, one originally written for Guile
on 02017-03-22BiwaScheme is a #JS implementation of #Scheme, including call/cc, with most of R7RS and a bunch of SRFIs, e.g. for #explorable-explanations.
on 02016-11-23Discussion thread on Will Byrd’s program #editor "Barliman", which uses #miniKanren to search for simple #Scheme programs that pass a given test suite. #KANREN
on 02016-08-01Bone is Wolfgang Jaehrling’s interpreter for a lexically-scoped #Lisp 1 (so, basically #Scheme) with immutable values, tail-call elimination, and explicit region-based #memory-management.
on 02016-07-05a domain specific language in #Scheme for #GPGPU programming, compiling to #OpenCL. 3-clause BSD license. Build currently failing.
on 02015-09-16the #miniKanren #logic-programming EDSL in a web-based #Scheme interpreter, interspersed with an explanation. #KANREN
on 02015-09-06