aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/examples/fib.frt
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-08-19 12:15:28 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-08-19 12:15:28 +0200
commit67d25d837ac55f28a366c0a3b262e439a6e75fc3 (patch)
treedf7715c7724c5935ab87c807f3b8b4ef529315e3 /amforth-6.5/examples/fib.frt
parente0d6784e89dba33226c0edb815bb974486fa7c48 (diff)
Add AmForth
Diffstat (limited to 'amforth-6.5/examples/fib.frt')
-rw-r--r--amforth-6.5/examples/fib.frt12
1 files changed, 12 insertions, 0 deletions
diff --git a/amforth-6.5/examples/fib.frt b/amforth-6.5/examples/fib.frt
new file mode 100644
index 0000000..3eaab4a
--- /dev/null
+++ b/amforth-6.5/examples/fib.frt
@@ -0,0 +1,12 @@
+( fibonacci number )
+: fib
+ dup 2 > if
+ dup 1- recurse swap 1- 1- recurse + exit
+ then
+ drop 1
+;
+
+: fib-iter 0 1 rot 0 ?do over + swap loop drop ;
+
+: dfib-iter >r 0 s>d 1 s>d r> 0 ?do 2over d+ 2swap loop 2drop .s ;
+