Integer overflow. factorial 50 mod 2^32 = 0.

Change "Int" to "Integer" to get the correct result (30414093201713378043612608166064768844377641568960512000000000000).


On Mon, Jan 21, 2013 at 12:17 AM, <miphis@meta.ua> wrote:
The program looks like this:

--***********************
factorial :: Int->Int
factorial n = product [1..n]

main = do
        print $ factorial 50
--***********************

And that yields "0" (no errors). Is it a bug or feature? :)

______________________________
Акция! Скидка до - 50% на колготы зимних коллекций в Линии магазинов EVA!
http://go.meta.ua/eva_colgotes


_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell



--
Gregory Collins <greg@gregorycollins.net>