Prelude Data.List> let x = product $ take 9 [1000,999..]
Prelude Data.List> x
964541486381834014456320000
Prelude Data.List> :t x
x :: (Enum a, Num a) => a
, x : , . GHCi, "" , Integer, , . , , :
Prelude Data.List> x :: Integer
964541486381834014456320000
Prelude Data.List> x :: Float
9.645414e26
Prelude Data.List> x :: Double
9.645414863818342e26
Prelude Data.List> x :: Int
-4623139575776374784
, , Int ( ) .
, Integer.
, - .
Prelude Data.List> let y = product (map (\j-> product [1..j]) $ map length (group [2,2,2,2,2,2,2,2,2]))
Prelude Data.List> y
362880
Prelude Data.List> :t y
y :: Int
x, y : Int, length. (: , , Int, .)
div, Haskell, , . x`div`y Int Integer, x. , , x Int .
OTOH, 362880 , length. , x, GHCi Integer,
Prelude Data.List> x `div` 362880
2658017764500203964000
, y:
Prelude Data.List> x `div` fromIntegral y
2658017764500203964000