Scheme Power Tools Documentation

List of definitions: click

Generic Event Handling

(defined in events.scm)
Adds to arbitrary objects the ability to define, raise and handle events.

Generic Predicate Dispatch

(defined in generic-operators.scm)
Implements support for "generic operators" - procedures which can dispatch based on arbitrary argument predicates. Can be used to implement single, multiple and more complex types of dispatch. Internally, generic operators use a decision tree so that for a given argument, the associated predicate is executed at most once.

Hash Set

(defined in hashset.scm)
Implements a simple hash set on top of a hash table.

Memoization

(defined in memo.scm)
Simple memoization with the ability to read/write memo data to a file. Uses the serialization mechanism to parse/unparse data.

Miscellaneous File Utilities

(defined in file-utils.scm)
Assorted file-handling utility functions.

Miscellaneous Utility Functions

(defined in misc-utils.scm)
Various utility functions that are not big enough to warrant their own module.

Monads

(defined in monads.scm)
A native Scheme implementation of monads, with notation similar to Haskell's. Enables the user to define custom monads through defmonad, and provides ready to use implementations of some simple monads like Maybe. Support for the "do" notation (here called perform) is included.

Pattern Matching

(defined in patterns.scm)
Adds native pattern matching to Scheme. Supports pattern-oriented dispatch of function arguments (pdefine), pattern bindings in let-like statements (plet) and pattern switch statements (pcase). The pattern language was inspired by the 6.945 Pattern Matcher, although no code was borrowed.

Pattern language reference is available here.

Serialization

(defined in serialize.scm)
Implements a serialization library. Supports reading and writing the usual Scheme primitives, as well as hash tables, pathnames and decoded times.

Sticky Notes

(defined in sticky-notes.scm)
Implements a generic mechanism for attaching named objects to other objects. Useful when you want to store some data about an object, but cannot modify the object's representation.

String Utilities

(defined in strings.scm)
Various string functions

Suffix Trees

(defined in suffix-tree.scm)
Implements generic suffix trees which operate on lists of tokens, where tokens can be of any type that can be compared with eqv?. Suffix trees support fast searches by prefix and approximate searches. Approximate searches quickly find "words" which match a query within some edit distance, and can be directly used to implement spelling correction.

Note: the documentation uses the terms "word" and "substring" with the understanding that the tree can store any lists of atoms.

Unit Testing

(defined in unit-testing.scm)
Provides simple JUnit-style unit testing for Scheme.


Scheme Power Tools Documentation
(c) Maciej Pacula 2010-2011
http://mpacula.com