mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-27 00:57:50 +00:00
6a50b5eb8f
Q -- equational programming language
38 lines
1.7 KiB
Plaintext
38 lines
1.7 KiB
Plaintext
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
|