1
0
Fork 0
mirror of https://gitlab.com/mfocko/CodeWars.git synced 2024-11-22 16:43:46 +01:00
CodeWars/5kyu/directions_reduction/solution.hs

21 lines
599 B
Haskell
Raw Normal View History

module Codewars.Kata.Reduction where
import Codewars.Kata.Reduction.Direction
-- data Direction = North | East | West | South deriving (Eq)
areOpposite :: Direction -> Direction -> Bool
areOpposite North South = True
areOpposite South North = True
areOpposite East West = True
areOpposite West East = True
areOpposite _ _ = False
folding :: Direction -> [Direction] -> [Direction]
folding x [] = [x]
folding x (y:rest) | areOpposite x y = rest
| otherwise = x:y:rest
dirReduce :: [Direction] -> [Direction]
dirReduce [] = []
dirReduce directions = foldr folding [] directions