diff --git a/articles/forth.md b/articles/forth.md index 4d5207a..b2dfe45 100644 --- a/articles/forth.md +++ b/articles/forth.md @@ -3,7 +3,7 @@ Forth is a family of [minimalistic](minimalism.md) stack [programming languages] What makes Forth different from other languages is the extreme flexibility it offers, allowing [metaprogramming](metaprogramming.md), similar to [Lisp](lisp.md). It has almost no syntax, the programmer can alter the reader to parse the stream as it pleases. -Forth and Lisp are quite similar; they can be built on a small set of primitives, both have metaprogramming capabilities, almost +Forth and Lisp are quite similar in a fundamental sense; both can be built on a small set of primitives, both have metaprogramming capabilities, almost no syntax (word stream and S-Expressions respectively), but differs Forth is closer to the machine, less mathematical or "pure" than Lisp for instance, which is based on the [lambda calculus](lambda_calculus.md). @@ -11,7 +11,7 @@ Being a stack language, Forth has two stacks: the data stack (where you push val Both stacks are of course modifiable by the user. Because the return pointer can also be modified manually, this allows implementing loops and control flow in the language itself. -Since Forth is a stack language, it uses a RPN syntax; valued are pushed to the data stack and then an operation +Since Forth is a stack language, it uses a [RPN](rpn.md) syntax; valued are pushed to the data stack and then an operation is applied: ```forth 2 2 + \ easy: 2 + 2