Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
11
Task/FizzBuzz/Haskell/fizzbuzz-1.hs
Normal file
11
Task/FizzBuzz/Haskell/fizzbuzz-1.hs
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
fizzbuzz :: Int -> String
|
||||
fizzbuzz x
|
||||
| f 15 = "FizzBuzz"
|
||||
| f 3 = "Fizz"
|
||||
| f 5 = "Buzz"
|
||||
| otherwise = show x
|
||||
where
|
||||
f = (0 ==) . rem x
|
||||
|
||||
main :: IO ()
|
||||
main = mapM_ (putStrLn . fizzbuzz) [1 .. 100]
|
||||
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]
|
||||
13
Task/FizzBuzz/Haskell/fizzbuzz-11.hs
Normal file
13
Task/FizzBuzz/Haskell/fizzbuzz-11.hs
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
wordthing :: [(Int, String)] -> Int -> String
|
||||
wordthing lst n =
|
||||
if matches == [] then
|
||||
show n
|
||||
else
|
||||
concat $ map snd matches
|
||||
where matches = filter (\x -> n `mod` (fst x) == 0) lst
|
||||
|
||||
fizzbuzz :: Int -> String
|
||||
fizzbuzz = wordthing [(3, "Fizz"), (5, "Buzz")]
|
||||
|
||||
main = do
|
||||
mapM_ (putStrLn . fizzbuzz) [1..100]
|
||||
18
Task/FizzBuzz/Haskell/fizzbuzz-2.hs
Normal file
18
Task/FizzBuzz/Haskell/fizzbuzz-2.hs
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
fizzbuzz :: Int -> String
|
||||
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 ""
|
||||
|
||||
main :: IO ()
|
||||
main = putStr $ concatMap fizzbuzz [1 .. 100]
|
||||
14
Task/FizzBuzz/Haskell/fizzbuzz-3.hs
Normal file
14
Task/FizzBuzz/Haskell/fizzbuzz-3.hs
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
main = mapM_ (putStrLn . fizzbuzz) [1..100]
|
||||
|
||||
fizzbuzz n =
|
||||
show n <|> [fizz| n `mod` 3 == 0] ++
|
||||
[buzz| n `mod` 5 == 0]
|
||||
|
||||
-- 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"
|
||||
5
Task/FizzBuzz/Haskell/fizzbuzz-4.hs
Normal file
5
Task/FizzBuzz/Haskell/fizzbuzz-4.hs
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
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"])
|
||||
17
Task/FizzBuzz/Haskell/fizzbuzz-5.hs
Normal file
17
Task/FizzBuzz/Haskell/fizzbuzz-5.hs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
import Control.Applicative ( ZipList(ZipList, getZipList) )
|
||||
|
||||
fizzBuzz :: [String]
|
||||
fizzBuzz =
|
||||
getZipList $ go <$>
|
||||
ZipList (cycle $ replicate 2 [] <> ["fizz"]) <*>
|
||||
ZipList (cycle $ replicate 4 [] <> ["buzz"]) <*>
|
||||
ZipList (show <$> [1 ..])
|
||||
|
||||
go :: String -> String -> String -> String
|
||||
go f b n
|
||||
| null f && null b = n
|
||||
| otherwise = f <> b
|
||||
|
||||
|
||||
main :: IO ()
|
||||
main = mapM_ putStrLn $ take 100 fizzBuzz
|
||||
12
Task/FizzBuzz/Haskell/fizzbuzz-6.hs
Normal file
12
Task/FizzBuzz/Haskell/fizzbuzz-6.hs
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
import Data.Bool (bool)
|
||||
|
||||
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
|
||||
12
Task/FizzBuzz/Haskell/fizzbuzz-7.hs
Normal file
12
Task/FizzBuzz/Haskell/fizzbuzz-7.hs
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
import Control.Monad.State
|
||||
import Control.Monad.Trans
|
||||
import Control.Monad.Writer
|
||||
|
||||
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-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