2022-02-11 11:10:14 -08:00
|
|
|
[ :x x x ] :dup
|
|
|
|
|
|
2022-02-11 18:31:12 -08:00
|
|
|
# This a dumb little workaround to allow for recursion so factorial inside of
|
|
|
|
|
# the function definition will look in the correct scope
|
2022-02-11 11:10:14 -08:00
|
|
|
0 :factorial
|
|
|
|
|
[
|
|
|
|
|
dup!
|
|
|
|
|
[dup! 1 -! factorial! *!]
|
|
|
|
|
[:_ 1]
|
|
|
|
|
if!
|
|
|
|
|
]
|
|
|
|
|
:factorial
|
|
|
|
|
|
|
|
|
|
[
|
|
|
|
|
dup! print!
|
|
|
|
|
"! = " print!
|
|
|
|
|
factorial!
|
|
|
|
|
println!
|
|
|
|
|
]
|
|
|
|
|
:do-factorial
|
|
|
|
|
|
|
|
|
|
1 do-factorial!
|
|
|
|
|
2 do-factorial!
|
|
|
|
|
3 do-factorial!
|
|
|
|
|
4 do-factorial!
|
|
|
|
|
5 do-factorial!
|
|
|
|
|
6 do-factorial!
|
|
|
|
|
7 do-factorial!
|
|
|
|
|
8 do-factorial!
|
|
|
|
|
9 do-factorial!
|