digitalmars.D - Re: D.challenge
- bearophile <bearophileHUGS lycos.com> Aug 31 2010
Justin Johansson:"challenging D to do this or that" in the context of, say, another programming language or some CS problem.
In past months I have proposed two little challenges, the second of them was to implement this RosettaCode task in D, to produce a program that is faster, shorter and uses less memory than the current D version: http://rosettacode.org/wiki/Hamming_numbers#D If you take a look at the Haskell version (that is much faster and uses much less RAM and has a shorter source code) you see that there is lot of space for improvement: hamming = 1 : map (2*) hamming `merge` map (3*) hamming `merge` map (5*) hamming where merge (x:xs) (y:ys) | x < y = x : xs `merge` (y:ys) | x > y = y : (x:xs) `merge` ys | otherwise = x : xs `merge` ys main = do print $ take 20 hamming print $ hamming !! 1690 print $ hamming !! 999999 (I don't remember yet the other older challenge.) Bye, bearophile
Aug 31 2010