Skip to content

Instantly share code, notes, and snippets.

@denisshevchenko
Last active November 6, 2017 15:17
Show Gist options
  • Save denisshevchenko/1084890cae422498d94fa3a6cd6d7bd0 to your computer and use it in GitHub Desktop.
Save denisshevchenko/1084890cae422498d94fa3a6cd6d7bd0 to your computer and use it in GitHub Desktop.
getDoorMaterial :: House -> NumberOfDoor -> Either ErrorMessage Material
getDoorMaterial (House _ [] _) _ = Left "Этот дом без дверей, не будет вам никакого материала!"
getDoorMaterial (House _ doors _) numberOfDoor =
if numberOfDoor > quantityOfDoors
then Left "Эй, брат, погоди, тут нету столько дверей! Значение numberOfDoor слишком большое."
else
let indexOfOurDoor = numberOfDoor - 1
ourDoor = doors !! indexOfOurDoor
(Door _ _ materialOfOurDoor) = ourDoor
in Right materialOfOurDoor
where
quantityOfDoors = length doors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment