|
|
|
@ -1,4 +1,5 @@
|
|
|
|
|
module DayOne where
|
|
|
|
|
import Control.Monad (guard)
|
|
|
|
|
|
|
|
|
|
-- How many different ways can you find to write allEven?
|
|
|
|
|
|
|
|
|
@ -100,3 +101,45 @@ maplayouts = [(al, mi, ga, tn, fl) |
|
|
|
|
|
-- [(Red,Green,Green,Blue,Blue),(Red,Blue,Blue,Green,Green),(Green,Red,Red,Blue,Blue),(Green,Blue,Blue,Red,Red),(Blue,Red,Red,Green,Green),(Blue,Green,Green,Red,Red)]
|
|
|
|
|
--
|
|
|
|
|
|
|
|
|
|
-- Haskell Wiki: Logic programming
|
|
|
|
|
-- https://wiki.haskell.org/Logic_programming_example
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data USMap = USMap {
|
|
|
|
|
alabama :: Color,
|
|
|
|
|
florida :: Color,
|
|
|
|
|
georgia :: Color,
|
|
|
|
|
mississippi :: Color,
|
|
|
|
|
tennessee :: Color
|
|
|
|
|
} deriving Show
|
|
|
|
|
|
|
|
|
|
maplayouts2 :: [USMap]
|
|
|
|
|
maplayouts2 = do
|
|
|
|
|
al <- [Red, Blue, Green]
|
|
|
|
|
fl <- [Red, Blue, Green]
|
|
|
|
|
ga <- [Red, Blue, Green]
|
|
|
|
|
ms <- [Red, Blue, Green]
|
|
|
|
|
tn <- [Red, Blue, Green]
|
|
|
|
|
|
|
|
|
|
guard $ ms /= tn
|
|
|
|
|
guard $ ms /= al
|
|
|
|
|
guard $ al /= tn
|
|
|
|
|
guard $ al /= ms
|
|
|
|
|
guard $ al /= ga
|
|
|
|
|
guard $ al /= fl
|
|
|
|
|
guard $ ga /= fl
|
|
|
|
|
guard $ ga /= tn
|
|
|
|
|
|
|
|
|
|
return $ USMap {
|
|
|
|
|
alabama = al,
|
|
|
|
|
florida = fl,
|
|
|
|
|
georgia = ga,
|
|
|
|
|
mississippi = ms,
|
|
|
|
|
tennessee = tn
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
-- >>> maplayouts2
|
|
|
|
|
-- [USMap {alabama = Red, florida = Blue, georgia = Green, mississippi = Green, tennessee = Blue},USMap {alabama = Red, florida = Green, georgia = Blue, mississippi = Blue, tennessee = Green},USMap {alabama = Blue, florida = Red, georgia = Green, mississippi = Green, tennessee = Red},USMap {alabama = Blue, florida = Green, georgia = Red, mississippi = Red, tennessee = Green},USMap {alabama = Green, florida = Red, georgia = Blue, mississippi = Blue, tennessee = Red},USMap {alabama = Green, florida = Blue, georgia = Red, mississippi = Red, tennessee = Blue}]
|
|
|
|
|
--
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|