
28 Nov
2007
28 Nov
'07
12:28 p.m.
On Nov 28, 2007 12:12 PM, Kalman Noel
Sebastian Sylvan:
primes :: [Integer] primes = 2 : filter (null . primeFactors) [3,5..]
primeFactors :: Integer-> [Integer] primeFactors n = factor n primes where factor m (p:ps) | p*p > m = [] | m `mod` p == 0 = p : factor (m `div` p) (p:ps) | otherwise = factor m ps
Your definition gives a strange meaning to primeFactors. I'd want that for all n, product (primeFactors n) == n. I think this law holds for the code posted by Olivier.
Yes you're right. That is property should clearly hold. -- Sebastian Sylvan +44(0)7857-300802 UIN: 44640862