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, the standard library, add-on modules for interfacing to GNU
dbm, ODBC, GNU Octave, GGI, ImageMagick, Tcl/Tk and IBM's Data Explorer, and
an Emacs mode.

Q's main features:

- advanced symbolic expression manipulation, using equations supplied by the
  programmer

- fast bytecode interpreter, which executes Q scripts almost as fast as
  interpreted Lisp or Haskell

- built-in support for arbitrary precision integers, double precision floating
  point numbers, strings, lists, tuples, curried function applications, lazy
  evaluation, exception handling, and user-defined object-oriented data types
  with single inheritance

- simple but powerful module system which lets you manage large scripts with
  ease, and a libtool-based interface to external C modules which allows such
  modules to be loaded at runtime

- comprehensive standard library written mostly in Q itself, which includes
  powerful list processing functions, a collection of useful container data
  structures, an implementation of the lambda calculus, an interface to the
  PostScript language, and a system interface featuring binary and C-style
  formatted I/O, file system and process manipulation utilities, POSIX
  threads, BSD sockets, regular expression matching, ...

WWW: http://q-lang.sourceforge.net/

- Albert Graef
ag@muwiinfa.geschichte.uni-mainz.de