Datos esenciales
1975, desarrollado por Guy L. Steele y Gerald Jay Sussman en el MIT. Dialecto de Lisp minimalista, con alcance léxico, funciones de primera clase, macros y continuations.
Lenguaje #28
Un Lisp minimalista con alcance léxico y continuations: claridad, REPL y poder expresivo en pocas reglas. Scheme influenció la enseñanza de computación y la evolución de lenguajes funcionales.
1975, desarrollado por Guy L. Steele y Gerald Jay Sussman en el MIT. Dialecto de Lisp minimalista, con alcance léxico, funciones de primera clase, macros y continuations.
Nace como experimento de semántica de actores y procedimientos. R3RS, R4RS, R5RS, R6RS y R7RS definen estándares crecientes. Scheme sirvió como base para SICP y HTDP, y para entornos como Racket que amplían el lenguaje con módulos y contratos.
Guy L. Steele y Gerald Jay Sussman (creadores). Matthias Felleisen impulsa el estudio de tipos, módulos y contratos (Racket). Jonathan Rees y otros lideran estándares Scheme. SICP populariza Scheme en MIT.
Enseñanza de fundamentos de programación, investigación en semántica de lenguajes, creación de DSLs, scripting en entornos extensibles, prototipado rápido y experimentos con continuations.
Expresiones prefix con paréntesis, alcance léxico, procedimientos como valores, macros (syntax-rules / syntax-case), continuations (call/cc), tail-call optimization garantizada, listas y vectores.
Implementaciones: Racket, Chez Scheme, Guile, Chicken, Gambit, MIT/GNU Scheme. Herramientas: REPLs, gestores de paquetes por implementación (raco en Racket), DrRacket IDE. Uso en extensiones de editores y sistemas embebidos.
Introdujo alcance léxico en Lisp, macros higiénicas y call/cc. Influyó en JavaScript (closures), Lua, Racket, Clojure y en pedagogía de programación (SICP, HTDP). Las ideas de tail recursion y macros se expandieron ampliamente.
SICP convirtió a Scheme en rito académico. Las discusiones sobre call/cc y macros higiénicas son parte del folklore. DrRacket y los “How to Design Programs” son referencias educativas.
R7RS guía implementaciones ligeras; Racket evoluciona como plataforma de lenguajes; Chez, Guile y Chicken siguen activas. Scheme permanece en educación e investigación y como base de DSLs.