Category:Factor: Difference between revisions

Content added Content deleted
m (Update a date)
m (change a date)
Line 13: Line 13:
Factor is a stack-based, concatenative, general-purpose programming language with a focus on practicality.
Factor is a stack-based, concatenative, general-purpose programming language with a focus on practicality.


Initially developed by Slava Pestov, Factor began life in 2003 as a scripting language written for a game. The implementation was originally an interpreter written in [[Java]], but has since gained an optimizing compiler and has been rewritten in Factor with a minimal [[C]] core. Read more about Factor's implementation history [http://concatenative.org/wiki/view/Factor/Implementation%20history here]. As of August 2019, Factor is still being developed by several contributors, with the latest [http://re-factor.blogspot.com/2018/07/factor-098-now-available.html stable release] in July 2018.
Initially developed by Slava Pestov, Factor began life in 2003 as a scripting language written for a game. The implementation was originally an interpreter written in [[Java]], but has since gained an optimizing compiler and has been rewritten in Factor with a minimal [[C]] core. Read more about Factor's implementation history [http://concatenative.org/wiki/view/Factor/Implementation%20history here]. As of June 2020, Factor is still being developed by several contributors, with the latest [http://re-factor.blogspot.com/2018/07/factor-098-now-available.html stable release] in July 2018.


Factor is a stack language similar to, but of a higher level than, [[Forth]]. Factor is a [http://concatenative.org/wiki/view/Concatenative%20language concatenative language], meaning that rather than applying functions to arguments (applicative languages) to evaluate things, we compose functions to evaluate a single piece of data — the entire program up until that particular point. In Factor, the basic structure of data flow is function composition. That is, <code>foo bar baz</code> is equivalent to <code>baz(bar(foo()))</code> in an applicative language. This offers a nice left-to-right style of reading and data flow.
Factor is a stack language similar to, but of a higher level than, [[Forth]]. Factor is a [http://concatenative.org/wiki/view/Concatenative%20language concatenative language], meaning that rather than applying functions to arguments (applicative languages) to evaluate things, we compose functions to evaluate a single piece of data — the entire program up until that particular point. In Factor, the basic structure of data flow is function composition. That is, <code>foo bar baz</code> is equivalent to <code>baz(bar(foo()))</code> in an applicative language. This offers a nice left-to-right style of reading and data flow.