diff options
| author | Alexander Pankoff <ccntrq@screenri.de> | 2022-05-07 18:41:10 +0200 |
|---|---|---|
| committer | Alexander Pankoff <ccntrq@screenri.de> | 2022-05-07 19:20:39 +0200 |
| commit | 26122bcb7444cc1ea4a620589cd078689ac05505 (patch) | |
| tree | c1bba529f2cb613873d857c7cb7031864ce420e6 /challenge-001 | |
| parent | aa0ebefae1e8631cc805413f421212c10a7b2684 (diff) | |
| download | perlweeklychallenge-club-26122bcb7444cc1ea4a620589cd078689ac05505.tar.gz perlweeklychallenge-club-26122bcb7444cc1ea4a620589cd078689ac05505.tar.bz2 perlweeklychallenge-club-26122bcb7444cc1ea4a620589cd078689ac05505.zip | |
Add haskell solutions for challenge 1
Diffstat (limited to 'challenge-001')
| -rw-r--r-- | challenge-001/alexander-pankoff/haskell/ch-1.hs | 14 | ||||
| -rw-r--r-- | challenge-001/alexander-pankoff/haskell/ch-2.hs | 18 |
2 files changed, 32 insertions, 0 deletions
diff --git a/challenge-001/alexander-pankoff/haskell/ch-1.hs b/challenge-001/alexander-pankoff/haskell/ch-1.hs new file mode 100644 index 0000000000..f10946fade --- /dev/null +++ b/challenge-001/alexander-pankoff/haskell/ch-1.hs @@ -0,0 +1,14 @@ +module Main where + +import Data.Bifunctor (first) + +main :: IO () +main = print $ replaceAndCount 'e' 'E' "Perl Weekly Challenge" + +replaceAndCount :: Char -> Char -> String -> (String, Int) +replaceAndCount taret replacement = first reverse . foldl go ("", 0) + where + go (replaced, count) cur = + if cur == taret + then (replacement : replaced, succ count) + else (cur : replaced, count) diff --git a/challenge-001/alexander-pankoff/haskell/ch-2.hs b/challenge-001/alexander-pankoff/haskell/ch-2.hs new file mode 100644 index 0000000000..90313ac72c --- /dev/null +++ b/challenge-001/alexander-pankoff/haskell/ch-2.hs @@ -0,0 +1,18 @@ +module Main where + +import Data.Bifunctor (first) +import Data.Bool (bool) + +main :: IO () +main = print $ fizzBuzz 20 + +fizzBuzz :: Int -> [String] +fizzBuzz max = + map + ( \x -> + let mfizzBuzz = fizzBuzzCycle !! pred x + in if not $ null mfizzBuzz then mfizzBuzz else show x + ) + [1 .. max] + where + fizzBuzzCycle = zipWith (++) (cycle ["", "", "Fizz"]) (cycle ["", "", "", "", "Buzz"]) |
