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
Code to enumerate free variables in a Scheme expression
(      (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

Scheme Theory

Scheme in a capability context
Comparison of Scheme and Caml
Poking at MzScheme
proposed error semantics
Dangerous eval
Sensory Scheme