add examples

This commit is contained in:
Peter Fidelman 2022-04-10 17:11:49 -07:00
parent 755d8e068b
commit 214a4917cd

View file

@ -7,3 +7,35 @@ the language it's interpreting. PARSE/WORD and the input stream
handling was the first place this became obvious. This design is a handling was the first place this became obvious. This design is a
dead end. The path forward would be stripping it back to primitives dead end. The path forward would be stripping it back to primitives
and rewriting the outer interpreter in Forth. and rewriting the outer interpreter in Forth.
Here are things it can do today:
Print some terms of the fibonacci sequence:
```
: over >r dup r> swap ;
: fib recursive r> drop over + swap dup . dup 144 - ? fib ;
: fib 1 0 fib ;
fib
1 1 2 3 5 8 13 21 34 55 89 144 ok
```
Compute the number of cans in a triangular stack of height n.
For example a stack of height 3 contains 6 cans.
```
x
x x
x x x
```
```
variable cans
: c recursive r> drop dup cans @ + cans ! 1 - dup ? c ;
: c c ;
: can-stack 0 cans ! c cans @ ;
3 can-stack .
6 ok
10 can-stack .
55 ok
```