Factor is a concatenative programming language designed and implemented by Slava Pestov.
Factor's main influences are Joy, FORTH, and Lisp.
Some of its key features include:
- Postfix syntax
- Dynamic typing
- Dynamic scoping
- Primary compound data types are linked lists, vectors, namespaces (lists of name/value pairs), and user-defined datatypes called tuples.
- Rich math library including floating point, ratios, complex numbers
- Continuations
- Integrated HTTP server
- Focus on interactive and test-driven development
- An advanced and non-traditional object system
Historically, there have been two implementations of Factor: a Java implementation and a [C programming language|C]] implementation. Both have an interpreter and a compiler. The Java version has been abandoned because it is much slower and less flexible than the C one.