aboutsummaryrefslogtreecommitdiff
path: root/docs/buzzard/demo5.th
diff options
context:
space:
mode:
Diffstat (limited to 'docs/buzzard/demo5.th')
-rw-r--r--docs/buzzard/demo5.th27
1 files changed, 27 insertions, 0 deletions
diff --git a/docs/buzzard/demo5.th b/docs/buzzard/demo5.th
new file mode 100644
index 0000000..d16ca1e
--- /dev/null
+++ b/docs/buzzard/demo5.th
@@ -0,0 +1,27 @@
+( recursive factorial. given x on top, followed by )
+( an "accumulator" containing the product except for x! )
+
+: fact-help2
+
+ dup if
+ swap over swap
+ *
+ swap 1 -
+ fact-help2
+ then
+;
+
+: fact
+
+ 1 swap
+ fact-help2
+ drop
+;
+
+: demo5
+
+ " The factorial of 3 is: " 3 fact . cr
+ " The factorial of 5 is: " 5 fact . cr
+;
+
+demo5