elm/exercises/allergies/Allergies.example

31 lines
546 B
Text
Raw Normal View History

module Allergies exposing (..)
2016-03-27 01:08:15 +00:00
import List
import Bitwise
isAllergicTo : String -> Int -> Bool
isAllergicTo name score =
List.member name (toList score)
2016-03-27 01:08:15 +00:00
toList : Int -> List String
toList score =
allergies
|> List.indexedMap (\i n -> ( Bitwise.shiftLeft 1 i, n ))
|> List.filter (\( s, n ) -> Bitwise.and s score > 0)
|> List.map snd
2016-03-27 01:08:15 +00:00
allergies : List String
allergies =
[ "eggs"
, "peanuts"
, "shellfish"
, "strawberries"
, "tomatoes"
, "chocolate"
, "pollen"
, "cats"
]