mirror of
https://gitlab.cs.washington.edu/fidelp/frustration.git
synced 2024-12-25 21:58:11 +01:00
add examples
This commit is contained in:
parent
755d8e068b
commit
214a4917cd
1 changed files with 32 additions and 0 deletions
32
README.md
32
README.md
|
@ -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
|
||||||
|
```
|
||||||
|
|
Loading…
Reference in a new issue