Sync
This commit is contained in:
parent
6f050a029e
commit
776bba907c
3887 changed files with 59894 additions and 7280 deletions
|
|
@ -1,5 +1,6 @@
|
|||
main = mapM_ putStrLn $ take 100 fizzbuzz
|
||||
main = putStr $ concat $ map fizzbuzz [1..100]
|
||||
|
||||
fizzbuzz = zipWith (\x y -> if null y then show x else y) [1..] fbs
|
||||
|
||||
fbs = zipWith (++) (cycle ["","","Fizz"]) (cycle ["","","","","Buzz"])
|
||||
fizzbuzz n =
|
||||
"\n" ++ if null (fizz++buzz) then show n else fizz++buzz
|
||||
where fizz = if mod n 3 == 0 then "Fizz" else ""
|
||||
buzz = if mod n 5 == 0 then "Buzz" else ""
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
import Control.Monad.State
|
||||
import Control.Monad.Trans
|
||||
import Control.Monad.Writer
|
||||
main = mapM_ (putStrLn . fizzbuzz) [1..100]
|
||||
|
||||
main = putStr $ execWriter $ mapM_ (flip execStateT True . fizzbuzz) [1..100]
|
||||
fizzbuzz n =
|
||||
show n <|> [fizz| n `mod` 3 == 0] ++
|
||||
[buzz| n `mod` 5 == 0]
|
||||
|
||||
fizzbuzz :: Int -> StateT Bool (Writer String) ()
|
||||
fizzbuzz x = do
|
||||
when (x `mod` 3 == 0) $ tell "Fizz" >> put False
|
||||
when (x `mod` 5 == 0) $ tell "Buzz" >> put False
|
||||
get >>= (flip when $ tell $ show x)
|
||||
tell "\n"
|
||||
-- A simple default choice operator.
|
||||
-- Defaults if both fizz and buzz fail, concats if any succeed.
|
||||
infixr 0 <|>
|
||||
d <|> [] = d
|
||||
_ <|> x = concat x
|
||||
|
||||
fizz = "Fizz"
|
||||
buzz = "Buzz"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
fizzBuzz :: Int -> String
|
||||
fizzBuzz x
|
||||
| x `mod` 5 == 0 && x `mod` 3 == 0 = "FizzBuzz"
|
||||
| x `mod` 5 == 0 = "Buzz"
|
||||
| x `mod` 3 == 0 = "Fizz"
|
||||
| otherwise = show x
|
||||
main = mapM_ putStrLn $ take 100 $ zipWith show_number_or_fizzbuzz [1..] fizz_buzz_list
|
||||
|
||||
show_number_or_fizzbuzz x y = if null y then show x else y
|
||||
|
||||
fizz_buzz_list = zipWith (++) (cycle ["","","Fizz"]) (cycle ["","","","","Buzz"])
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
fizzBuzz :: (Integral a) => a -> String
|
||||
fizzBuzz i
|
||||
| fizz && buzz = "FizzBuzz"
|
||||
| fizz = "Fizz"
|
||||
| buzz = "Buzz"
|
||||
| otherwise = show i
|
||||
where fizz = i `mod` 3 == 0
|
||||
buzz = i `mod` 5 == 0
|
||||
import Control.Monad.State
|
||||
import Control.Monad.Trans
|
||||
import Control.Monad.Writer
|
||||
|
||||
main = mapM_ (putStrLn . fizzBuzz) [1..100]
|
||||
main = putStr $ execWriter $ mapM_ (flip execStateT True . fizzbuzz) [1..100]
|
||||
|
||||
fizzbuzz :: Int -> StateT Bool (Writer String) ()
|
||||
fizzbuzz x = do
|
||||
when (x `mod` 3 == 0) $ tell "Fizz" >> put False
|
||||
when (x `mod` 5 == 0) $ tell "Buzz" >> put False
|
||||
get >>= (flip when $ tell $ show x)
|
||||
tell "\n"
|
||||
|
|
|
|||
10
Task/FizzBuzz/Haskell/fizzbuzz-6.hs
Normal file
10
Task/FizzBuzz/Haskell/fizzbuzz-6.hs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
fizzBuzz :: (Integral a) => a -> String
|
||||
fizzBuzz i
|
||||
| fizz && buzz = "FizzBuzz"
|
||||
| fizz = "Fizz"
|
||||
| buzz = "Buzz"
|
||||
| otherwise = show i
|
||||
where fizz = i `mod` 3 == 0
|
||||
buzz = i `mod` 5 == 0
|
||||
|
||||
main = mapM_ (putStrLn . fizzBuzz) [1..100]
|
||||
Loading…
Add table
Add a link
Reference in a new issue