Here is my Haskell function to remove 2::Int
and 5::Int
from a list:
remPrimesFactors25 :: [Int] -> [Int]
remPrimesFactors25 [] = []
remPrimesFactors25 (x:xs)
| x == 2 = remPrimesFactors25 xs
| x == 5 = remPrimesFactors25 xs
| otherwise = x : remPrimesFactors25 xs
λ> remPrimesFactors25 [2,5,23]
[23]
λ> remPrimesFactors25 [2,5,23] == [23]
True
λ> product (remPrimesFactors25 [2,5,23])
23
λ> product [23]
23
λ> product (remPrimesFactors25 [2,5,23]) == product [23]
True
Here's my problem. Why does this happen?
λ> mod (10^22) (product (remPrimesFactors25 [2,5,23]) )
15
λ> mod (10^22) (product [23])
1