<span class="Apple-style-span" style="font-family: Helvetica; font-size: 12px; ">'m trying to compile my file that has my Euler problems in it to output the solution to problem four, but I'm getting a compile error. Here's my .hs file:<br>
-------------------------<br>module Euler1 where<br>import Data.List<br>import Data.Ord<br><br>main = mapM_ putStrLn problem4<br><br>problem1 = foldl1' (+) $ nub $ (takeWhile (< 1000) [3,6..] ++ takeWhile (< 1000) [5,10..])<br>
problem2 = sum $ takeWhile (<= 4000000) [x | x <- fibs, even x]<br><span class="Apple-tab-span" style="white-space: pre; ">        </span>where fibs = unfoldr (\(a,b) -> Just (a,(b,a+b))) (0,1)<br><br>problem3 z = maximumBy compare (filter (\x -> z `mod` x == 0) (takeWhile (<= ceiling (sqrt (fromIntegral z))) primes))<br>
<br>problem4 = nub [ show $ y * z | y <- [100..999], z <- [100..999], show (y*z) == reverse (show $ y*z)]<br><br>prime p = p `elem` primes<br><br>primes = small ++ large<br><span class="Apple-tab-span" style="white-space: pre; ">        </span>where<br>
<span class="Apple-tab-span" style="white-space: pre; ">        </span><span class="Apple-tab-span" style="white-space: pre; ">        </span>1:p:candidates = roll $ mkWheel small<br><span class="Apple-tab-span" style="white-space: pre; ">        </span><span class="Apple-tab-span" style="white-space: pre; ">        </span>small = [2,3,5,7]<br>
<span class="Apple-tab-span" style="white-space: pre; ">        </span><span class="Apple-tab-span" style="white-space: pre; ">        </span>large = p : filter isPrime candidates<br><span class="Apple-tab-span" style="white-space: pre; ">        </span><span class="Apple-tab-span" style="white-space: pre; ">        </span>isPrime n = all (not . divides n) $ takeWhile (\p -> p*p <= n) large<br>
<span class="Apple-tab-span" style="white-space: pre; ">        </span><span class="Apple-tab-span" style="white-space: pre; ">        </span>divides n p = n `mod` p == 0<br>mkWheel ds = foldl nextSize w0 ds<br>nextSize (Wheel n rs) p =<br>
Wheel (p*n) [r' | k <- [0..(p-1)], r <- rs, let r' = n*k+r, r' `mod` p /= 0]<br>w0 = Wheel 1 [1]<br>roll (Wheel n rs) = [n*k+r | k <- [0..], r <- rs]<br>data Wheel = Wheel Integer [Integer]<br>------------------------<br>
<br>Here's my output when I try to compile:<br><br>ian$ ghc ~/Documents/eulerProblem1.hs -o test<br>Undefined symbols:<br> "___stginit_ZCMain", referenced from:<br> ___stginit_ZCMain$non_lazy_ptr in libHSrts.a(Main.o)<br>
"_ZCMain_main_closure", referenced from:<br> _ZCMain_main_closure$non_lazy_ptr in libHSrts.a(Main.o)<br>ld: symbol(s) not found<br>collect2: ld returned 1 exit status<br><br>What's going on? I'm running GHC 6.8.3, if that helps.</span><br>