Day2 use enum for shapes

This commit is contained in:
Jens Kadenbach
2022-12-02 16:45:03 +01:00
parent 71972e30ec
commit 5383662a81
2 changed files with 10 additions and 5 deletions

View File

@@ -12,7 +12,7 @@ module Day2.Shared (
) where
data Shape = Rock | Paper | Scissors
deriving (Show, Eq)
deriving (Show, Eq, Enum)
newtype Score = Score Int
deriving (Show, Eq)
@@ -36,9 +36,7 @@ newtype Game = Game (Shape, Shape)
deriving (Show, Eq)
shapeScore :: Shape -> Score
shapeScore Rock = Score 1
shapeScore Paper = Score 2
shapeScore Scissors = Score 3
shapeScore = Score . (+1) . fromEnum
winAgainst :: Shape -> Shape
winAgainst Rock = Paper