Scheme
Scheme is a small, extendable programming language
defined upon a core of denotational semantics.
In a way it's not really a language at all,
since it has almost no syntax and the programmer is expected
to think more at the structural level and
less in terms of language idioms.
Therefore two Scheme implementations are usually as different
as Python compared to Java (or any other example - you name it).
General and background Information
http://www.schemers.org/ - find pointers standards SRFI's etc. there.
It's time to learn Scheme.
A turtorial
read more.
Suggested for beginners:
Riastradh's Lisp Style Rules
a guide to Lisp style, written by Taylor R. Campbell; parts are focussed on or specific to Scheme.
To learn about hygienic macros:
Syntax-rules Primer for the Merely Eccentric.
Operational Semantics,
administrative normal form
http://www.church-project.org/
There is a nice paper on use of continuations:
http://jerry.cs.uiuc.edu/~plop/plop2001/accepted_submissions/PLoP2001/dferguson0/PLoP2001_dferguson0_1.pdf
and an overview on the discovery of continuations:
http://citeseer.nj.nec.com/reynolds93discoveries.html,
Dave Herman A Schemer's Introduction to Monads.
Highlights
Anton van Straaten
announced
an interpreter
based of just the 6 basic operations
evaluation of constants, evaluation of variables, procedure
application, lambda, if, and set! .
(Whereby set! is not striktly required
and not present in the strict functional subset "DSSSL"
as implemented in Askemos.)
Oleg's beta evaluator
http://okmij.org/ftp/Scheme/callcc-calc-page.html .
alexpander r5rs macro expander.
Kernel is a conservative, Scheme-like dialect of Lisp in which everything is a first-class object. ... Kernel eliminates the non-orthogonality problem by breaking the classical lambda constructor into two orthogonal parts, one of which is the Kernel constructor for first-class operatives.
How to Write Seemingly Unhygienic and
Referentially Opaque Macros with
Syntax-rules
A typechecker for Scheme
http://www.cs.iastate.edu/~leavens/ComS342-EOPL2e/docs/
code is here
http://www.cs.iastate.edu/~leavens/ComS342-EOPL2e/lib/
http://pysch.sourceforge.net/
Tools
There are several tools to easy the task of documenting
Scheme (and LISP) code, e.g,
http://youpou.lip6.fr/queinnec/WWW/l2t.html
also Elucidative Programming
http://www.cs.auc.dk/~normark/elucidative-programming
and should go to ProjectsOnThePlate.
The first usable implementation (version 0.5 and above)
of Askemos where based on RScheme.
With the support of Felix Winkelmann,
a port to the TargetPlatformchicken
is currently the forthcoming.
#f small self contained compiler for a subset of Scheme.
scheme-complete.el
provides real-time, lexical-scope aware
type inferencing tab-completion for any R5RS scheme, with
extensibility for implementation-specific features.
module system
There's a module systemin R6RS,
(from here)
However the Scheme community is split up over the merits of r6rs.
Some folks propose a err5rs
as a practical migration path from the R5RS to some future standard that supersedes both the R5RS and the R6RS.
The StandardML module system as
provided by chicken looks promising.
Others to evaluate are PLT, Scheme 48, bigloo (more?).
Beware: some don't allow rename on import, something you need!
Libraries
Scheme Now!, also know as Snow,
is a repository of Scheme packages that are portable to several popular implementations of Scheme.
A rscheme port of the pattern matcher (syntax exension) from
Andrew K. Wright and Bruce F. Duba
is distributed with the Askemos code since version 0.7.2.
Original at ftp://titan.cs.rice.edu/public/wright/match.tar.Z
Schematics Scheme libs primarily for plt scheme
http://schematics.sourceforge.net/
There are some things to say about Scheme.
Most are rather philosophical, oncerned with long term availibility.
(Aka "ease of implementation".)
I ommit writing this up and refer you to people more capable at that.
Anyway I need a place, where to put some pointers.
A library of Scheme related research
Editors
emacs mode
schemeway for eclipse