From 43905f3f3d802e1ea44e3692d17f244a5110853f Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Sun, 20 Oct 2013 17:08:01 -0700 Subject: [PATCH] math.factorials: adding "factorials" word. --- extra/math/factorials/factorials-tests.factor | 4 ++++ extra/math/factorials/factorials.factor | 3 +++ 2 files changed, 7 insertions(+) diff --git a/extra/math/factorials/factorials-tests.factor b/extra/math/factorials/factorials-tests.factor index d708f7974f..9f2fda9ff0 100644 --- a/extra/math/factorials/factorials-tests.factor +++ b/extra/math/factorials/factorials-tests.factor @@ -6,6 +6,10 @@ IN: math.factorials [ 1 ] [ 1 factorial ] unit-test [ 3628800 ] [ 10 factorial ] unit-test +{ { 1 1 2 6 24 120 720 5040 40320 362880 3628800 } } [ + 10 factorials +] unit-test + { { 1/0. 1/105 1/0. -1/15 1/0. 1/3 1/0. -1 1/0. diff --git a/extra/math/factorials/factorials.factor b/extra/math/factorials/factorials.factor index bd22ff9cfb..fb9057ed83 100644 --- a/extra/math/factorials/factorials.factor +++ b/extra/math/factorials/factorials.factor @@ -11,6 +11,9 @@ MEMO: factorial ( n -- n! ) ALIAS: n! factorial +: factorials ( n -- seq ) + 1 swap [0,b] [ dup 1 > [ * ] [ drop ] if dup ] map nip ; + MEMO: double-factorial ( n -- n!! ) dup [ even? ] [ 0 < ] bi [ [ drop 1/0. ] [