factorial :: Int -> Int -- testing 4 combinations of argument values -- pruning with 27/65 rules -- looking through 3 candidates of size 1 -- looking through 3 candidates of size 2 -- looking through 7 candidates of size 3 -- looking through 13 candidates of size 4 -- looking through 35 candidates of size 5 -- looking through 61 candidates of size 6 -- looking through 219 candidates of size 7 -- tested 153 candidates factorial 0 = 1 factorial x = x * factorial (x - 1) factorial :: Int -> Int -- testing 4 combinations of argument values -- pruning with 32/72 rules -- looking through 3 candidates of size 1 -- looking through 3 candidates of size 2 -- looking through 7 candidates of size 3 -- looking through 13 candidates of size 4 -- looking through 35 candidates of size 5 -- looking through 101 candidates of size 6 -- tested 89 candidates factorial x = foldr (*) 1 [1..x]