September Morn Update
This commit is contained in:
parent
4e2d22a71d
commit
aac6731f2c
6856 changed files with 141342 additions and 21127 deletions
7
Task/FizzBuzz/Haskell/fizzbuzz-10.hs
Normal file
7
Task/FizzBuzz/Haskell/fizzbuzz-10.hs
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
fizzbuzz n = case (rem n 3, rem n 5) of
|
||||
(0, 0) -> "FizzBuzz"
|
||||
(0, _) -> "Fizz"
|
||||
(_, 0) -> "Buzz"
|
||||
(_, _) -> show n
|
||||
|
||||
main = mapM_ (putStrLn . fizzbuzz) [1..100]
|
||||
|
|
@ -1,12 +1,15 @@
|
|||
import Control.Monad.State
|
||||
import Control.Monad.Trans
|
||||
import Control.Monad.Writer
|
||||
import Data.List (zipWith3)
|
||||
import Data.Bool (bool)
|
||||
|
||||
main = putStr $ execWriter $ mapM_ (flip execStateT True . fizzbuzz) [1..100]
|
||||
fizzBuzz :: [String]
|
||||
fizzBuzz =
|
||||
zipWith3
|
||||
(\f b n ->
|
||||
let fb = f ++ b
|
||||
in bool fb n (null fb))
|
||||
(cycle $ replicate 2 [] ++ ["fizz"])
|
||||
(cycle $ replicate 4 [] ++ ["buzz"])
|
||||
(show <$> [1 ..])
|
||||
|
||||
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"
|
||||
main :: IO ()
|
||||
main = mapM_ putStrLn $ take 100 fizzBuzz
|
||||
|
|
|
|||
|
|
@ -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 Data.Bool (bool)
|
||||
|
||||
main = mapM_ (putStrLn . fizzBuzz) [1..100]
|
||||
fizzBuzz :: [String]
|
||||
fizzBuzz =
|
||||
let fb n k = cycle (replicate (pred n) [] ++ [k])
|
||||
in zipWith
|
||||
(flip . bool <*> null)
|
||||
(zipWith (++) (fb 3 "fizz") (fb 5 "buzz"))
|
||||
(show <$> [1 ..])
|
||||
|
||||
main :: IO ()
|
||||
main = mapM_ putStrLn $ take 100 fizzBuzz
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
import Data.Monoid
|
||||
import Control.Monad.State
|
||||
import Control.Monad.Trans
|
||||
import Control.Monad.Writer
|
||||
|
||||
fizzbuzz = max
|
||||
<$> show
|
||||
<*> "fizz" `when` divisibleBy 3
|
||||
<> "buzz" `when` divisibleBy 5
|
||||
<> "quxx" `when` divisibleBy 7
|
||||
where
|
||||
when m p x = if p x then m else mempty
|
||||
divisibleBy n x = x `mod` n == 0
|
||||
main = putStr $ execWriter $ mapM_ (flip execStateT True . fizzbuzz) [1..100]
|
||||
|
||||
main = mapM_ (putStrLn . 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-8.hs
Normal file
10
Task/FizzBuzz/Haskell/fizzbuzz-8.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]
|
||||
12
Task/FizzBuzz/Haskell/fizzbuzz-9.hs
Normal file
12
Task/FizzBuzz/Haskell/fizzbuzz-9.hs
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
import Data.Monoid
|
||||
|
||||
fizzbuzz = max
|
||||
<$> show
|
||||
<*> "fizz" `when` divisibleBy 3
|
||||
<> "buzz" `when` divisibleBy 5
|
||||
<> "quxx" `when` divisibleBy 7
|
||||
where
|
||||
when m p x = if p x then m else mempty
|
||||
divisibleBy n x = x `mod` n == 0
|
||||
|
||||
main = mapM_ (putStrLn . fizzbuzz) [1..100]
|
||||
Loading…
Add table
Add a link
Reference in a new issue