Skip to content

Commit 4948566

Browse files
committed
Solve 'Unscrambled eggs' kata
1 parent e18ff25 commit 4948566

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

src/UnscrambledEggs.hs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
module UnscrambledEggs (unscrambleEggs) where
2+
3+
-- https://www.codewars.com/kata/55ea5650fe9247a2ea0000a7/train/haskell
4+
5+
unscrambleEggs :: String -> String
6+
unscrambleEggs [] = []
7+
unscrambleEggs (a : b : c : xs)
8+
| a == 'e' && b == 'g' && c == 'g' = unscrambleEggs xs
9+
| otherwise = a : unscrambleEggs (b : c : xs)
10+
unscrambleEggs (x : xs) = x : unscrambleEggs xs

test/UnscrambledEggsSpec.hs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
module UnscrambledEggsSpec (spec) where
2+
3+
import UnscrambledEggs (unscrambleEggs)
4+
import Test.Hspec
5+
import Test.HUnit (assertEqual)
6+
7+
spec :: Spec
8+
spec = do
9+
it "example tests" $ do
10+
assertEqual "unscrambleEggs(\"Beggegeggineggneggeregg\")" "Beginner" $ unscrambleEggs "Beggegeggineggneggeregg"
11+
assertEqual "unscrambleEggs(\"ceggodegge heggeregge\")" "code here" $ unscrambleEggs "ceggodegge heggeregge"
12+
assertEqual "unscrambleEggs(\"FeggUNegg KeggATeggA\")" "FUN KATA" $ unscrambleEggs "FeggUNegg KeggATeggA"

0 commit comments

Comments
 (0)