変な処理があれば修正してください。
times 0 action = return () times n action = action >> times (n-1) action main = do 5 `times` putStrLn "Hello World!"
import System.Environment times 0 action = return () times n action = action >> times (n-1) action main = do x <- getArgs (read (x !! 0)) `times` putStrLn "Hello World!"
main = do mapM_ putStrLn (map fizzBuzz [1..100]) fizzBuzz :: Integer -> String fizzBuzz n | n `mod` 15 == 0 = "FizzBuzz" | n `mod` 5 == 0 = "Buzz" | n `mod` 3 == 0 = "Fizz" | otherwise = show n
primesTo m = 2 : sieve [3, 5..m] where sieve [] = [] sieve (p:xs) = p : sieve (xs `minus` [p*p, p*p+2*p..m]) minus (x:xs) (y:ys) = case (compare x y) of LT -> x : minus xs (y:ys) EQ -> minus xs ys GT -> minus (x:xs) ys minus xs _ = xs main = do print $ primesTo (floor 1e6)
quicksort :: (Ord a) => [a] -> [a] quicksort [] = [] quicksort (x:xs) = let smallerSorted = quicksort[a | a<-xs, a <= x] biggerSorted = quicksort[a | a<-xs, a > x] in smallerSorted ++ [x] ++ biggerSorted main :: IO() main = print $ quicksort [5, 7, 9, 2, 1, 3, 8, 4, 6, 0]