Often when I have a really hard problem to solve I resort to Scheme for
the powerful set of patterns that it supports.
Here are some tools that I have accumulated and here are two adequate Scheme systems.
All my recent work in Scheme has been in the context of this Scheme repository and module system.

Just a few things I don’t like about Scheme.

### Pure Scheme

My simple do loop program

Streams in Scheme

Universal `equal?` for Scheme

Transposing a ragged matrix

Persistent Stack Frames

Tax

Code to enumerate free variables in a Scheme expression

Synergy
( (lambda (arg) (list arg (list (quote quote) arg)))
(quote (lambda (arg) (list arg (list (quote quote) arg)))))
(define (C a b) (if (zero? a) 1 (/ (* (C (- a 1) b) (+ 1 (- b a))) a))) ; b Choose a

### Applied Scheme

Some number theory,
Scheme code for finding primes

RSA (4 times standard speed), Extended Euclidean Algorithm

A matrix inversion routine not tied to floating point scalars.

Finite fields

Set abstraction for totally ordered types

Merging and Sorting

Multivariate polynomials,
Multinomials and Differential Geometry

Random Normal Deviate generator;
requires rand31 from here.

Generalizing Complex Numbers.
Dynamic creation of new types.

Clifford Arithmetic

Sneaking up on Multiple user Scheme,
meta stuff

Church’s numbers

Multi precision reals for sin and π
### Scheme Theory

Scheme in a capability context

Comparison of Scheme and Caml

Poking at MzScheme

proposed error semantics

Dangerous `eval`

Sensory Scheme

Coroutines