aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/examples/fib.frt
diff options
context:
space:
mode:
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 ;
+