Q is a powerful and extensible functional programming language based
on the term rewriting calculus. You specify an arbitrary system of
equations which the interpreter uses as rewrite rules to reduce
expressions to normal form. Q is useful for scientific programming and
other advanced applications, and also as a sophisticated kind of
desktop calculator. The distribution includes the Q programming tools,
a standard library, add-on modules for interfacing to Curl, GNU dbm,
ODBC, GNU Octave, ImageMagick, Tcl/Tk, XML/XSLT and an Emacs mode.