A StackBasedLanguage based on JoyLanguage, ForthLanguage, LispLanguage, and SlateLanguage. It features the ConsCell as the building block of code, HigherOrderFunctions, CallWithCurrentContinuation, DynamicTyping, and DynamicScope.
See http://www.factorcode.org/.
For a sample, http://docs.factorcode.org/ leads to a slick web-based dictionary and documentation browsers for the source of the web server, which supports WebTransactionsWithContinuations. Super-cool!
Factor is a ConcatenativeLanguage.
-- SlavaPestov
For a small sample of Factor code that performs an operation well-known to many Internet users, here's rot13.factor from the "extras" distributed with the Factor system.
! Copyright (C) 2006 Daniel Ehrenberg ! See http://factorcode.org/license.txt for BSD license. USING: kernel math sequences strings io combinators ascii ; IN: rot13 : rotate ( ch base -- ch ) [ - 13 + 26 mod ] keep + ; : rot-letter ( ch -- ch ) { { [ dup letter? ] [ CHAR: a rotate ] } { [ dup LETTER? ] [ CHAR: A rotate ] } { [ t ] [ ] } } cond ; : rot13 ( string -- string ) [ rot-letter ] map ; : rot13-demo ( -- ) "Please enter a string:" print flush readln [ "Your string: " write dup print "Rot13: " write rot13 print ] when* ; MAIN: rot13-demoThis illustrates a few properties of Factor code: it looks roughly like Forth, largely composed of colon definitions; control-flow words such as "cond" use data structures composed of code (called quotations) as their arguments; and higher-order functions such as "map" work similarly.