The Factor programming language combines powerful language features with a full-featured library. The implementation is fully compiled for performance, while still supporting interactive development. Factor applications are portable between all common platforms. Factor can deploy stand-alone applications on all platforms. Full source code for the Factor project is available under a BSD license.
If you are reading this README file, you either downloaded a binary package, or checked out Factor sources from the GIT repository.
- Learning Factor
- System requirements
- Building Factor from source (don't do this if you're using a binary package)
To run Factor:
- Windows: Double-click
factor.exe
, or run.\factor.com
in a command prompt - Mac OS X: Double-click
Factor.app
or runopen Factor.app
in a Terminal - Unix: Run
./factor
in a shell
A tutorial is available that can be accessed from the Factor environment:
"first-program" help
Some other simple things you can try in the listener:
"Hello, world" print
{ 4 8 15 16 23 42 } [ 2 * ] map .
1000 [1,b] sum .
4 iota [
"Happy Birthday " write
2 = "dear NAME" "to You" ? print
] each
The Factor environment includes extensive reference documentation and a short "cookbook" to help you get started. The best way to read the documentation is in the UI; press F1 in the UI listener to open the help browser tool. You can also browse the documentation online.
Factor supports a number of command line switches:
Usage: factor [Factor arguments] [script] [script arguments]
Common arguments:
-help print this message and exit
-i=<image> load Factor image file <image> (default factor.image)
-run=<vocab> run the MAIN: entry point of <vocab>
-run=listener run terminal listener
-run=ui.tools run Factor development UI
-e=<code> evaluate <code>
-no-user-init suppress loading of .factor-rc
Enter
"command-line" help
from within Factor for more information.
You can also write scripts that can be run from the terminal, by putting
#!/path/to/factor
at the top of your scripts and making them executable.
The Factor source tree is organized as follows:
build-support/
- scripts used for compiling Factor (not present in binary packages)vm/
- Factor VM source code (not present in binary packages)core/
- Factor core librarybasis/
- Factor basis library, compiler, toolsextra/
- more libraries and applicationsmisc/
- editor modes, icons, etcunmaintained/
- unmaintained contributions, please help!
Factor developers meet in the #concatenative
channel on
irc.freenode.net. Drop by if you want to discuss
anything related to Factor or language design in general.
Have fun!