aboutsummaryrefslogtreecommitdiff
path: root/buzzard/demo5.th
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-06-10 23:18:31 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-06-10 23:18:31 +0200
commitda312e375eb0a0758a4dd72e287d3aba86c04d99 (patch)
treeaa7d3631273b516e7f10ef40a53a5edd21a81b7e /buzzard/demo5.th
parente4d7ac43458f9f96a15041d35feddecca20ddbba (diff)
Add FIRST & THIRD almost FORTH
Diffstat (limited to 'buzzard/demo5.th')
-rw-r--r--buzzard/demo5.th27
1 files changed, 27 insertions, 0 deletions
diff --git a/buzzard/demo5.th b/buzzard/demo5.th
new file mode 100644
index 0000000..d16ca1e
--- /dev/null
+++ b/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