Copyright | (c) Justin Le 2018 |
---|---|
License | BSD3 |
Maintainer | justin@jle.im |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
AOC.Challenge
Description
Gather together all challenges and collect them into a single map.
Synopsis
- module AOC.Challenge.Day25
- module AOC.Challenge.Day24
- module AOC.Challenge.Day23
- module AOC.Challenge.Day22
- module AOC.Challenge.Day21
- module AOC.Challenge.Day20
- module AOC.Challenge.Day19
- module AOC.Challenge.Day18
- module AOC.Challenge.Day17
- module AOC.Challenge.Day16
- module AOC.Challenge.Day15
- module AOC.Challenge.Day14
- module AOC.Challenge.Day13
- module AOC.Challenge.Day12
- module AOC.Challenge.Day11
- module AOC.Challenge.Day10
- module AOC.Challenge.Day09
- module AOC.Challenge.Day08
- module AOC.Challenge.Day07
- module AOC.Challenge.Day06
- module AOC.Challenge.Day05
- module AOC.Challenge.Day04
- module AOC.Challenge.Day03
- module AOC.Challenge.Day02
- module AOC.Challenge.Day01
- type ChallengeMap = Map Day (Map Part SomeSolution)
- data ChallengeSpec = CS {}
- data Part
- challengeMap :: ChallengeMap
- lookupSolution :: ChallengeSpec -> Map Day (Map Part a) -> Maybe a
- newtype Day = Day {}
- dayInt :: Day -> Integer
- mkDay :: Integer -> Maybe Day
- mkDay_ :: Integer -> Day
- solSpec :: Name -> ChallengeSpec
- charPart :: Char -> Maybe Part
Documentation
module AOC.Challenge.Day25
module AOC.Challenge.Day24
module AOC.Challenge.Day23
module AOC.Challenge.Day22
module AOC.Challenge.Day21
module AOC.Challenge.Day20
module AOC.Challenge.Day19
module AOC.Challenge.Day18
module AOC.Challenge.Day17
module AOC.Challenge.Day16
module AOC.Challenge.Day15
module AOC.Challenge.Day14
module AOC.Challenge.Day13
module AOC.Challenge.Day12
module AOC.Challenge.Day11
module AOC.Challenge.Day10
module AOC.Challenge.Day09
module AOC.Challenge.Day08
module AOC.Challenge.Day07
module AOC.Challenge.Day06
module AOC.Challenge.Day05
module AOC.Challenge.Day04
module AOC.Challenge.Day03
module AOC.Challenge.Day02
module AOC.Challenge.Day01
type ChallengeMap = Map Day (Map Part SomeSolution) Source #
A map of days to parts to solutions.
data ChallengeSpec Source #
A specification for a specific challenge. Should consist of a day and a lowercase character.
Instances
Eq ChallengeSpec Source # | |
Defined in AOC.Discover Methods (==) :: ChallengeSpec -> ChallengeSpec -> Bool # (/=) :: ChallengeSpec -> ChallengeSpec -> Bool # | |
Ord ChallengeSpec Source # | |
Defined in AOC.Discover Methods compare :: ChallengeSpec -> ChallengeSpec -> Ordering # (<) :: ChallengeSpec -> ChallengeSpec -> Bool # (<=) :: ChallengeSpec -> ChallengeSpec -> Bool # (>) :: ChallengeSpec -> ChallengeSpec -> Bool # (>=) :: ChallengeSpec -> ChallengeSpec -> Bool # max :: ChallengeSpec -> ChallengeSpec -> ChallengeSpec # min :: ChallengeSpec -> ChallengeSpec -> ChallengeSpec # | |
Show ChallengeSpec Source # | |
Defined in AOC.Discover Methods showsPrec :: Int -> ChallengeSpec -> ShowS # show :: ChallengeSpec -> String # showList :: [ChallengeSpec] -> ShowS # | |
IsString ChallengeSpec Source # | |
Defined in AOC.Discover Methods fromString :: String -> ChallengeSpec # |
A given part of a problem. All Advent of Code challenges are two-parts.
You can usually get Part1
(if it is already released) with a nonsense
session key, but Part2
always requires a valid session key.
Instances
Bounded Part | |
Enum Part | |
Eq Part | |
Ord Part | |
Read Part | |
Show Part | |
Generic Part | |
ToJSON Part | Since: advent-of-code-api-0.2.4.2 |
Defined in Advent.Types | |
ToJSONKey Part | Since: advent-of-code-api-0.2.4.2 |
Defined in Advent.Types | |
FromJSON Part | |
FromJSONKey Part | |
Defined in Advent.Types | |
ToHttpApiData Part | |
Defined in Advent.Types Methods toUrlPiece :: Part -> Text # toEncodedUrlPiece :: Part -> Builder # toHeader :: Part -> ByteString # toQueryParam :: Part -> Text # | |
type Rep Part | |
challengeMap :: ChallengeMap Source #
A map of all challenges.
lookupSolution :: ChallengeSpec -> Map Day (Map Part a) -> Maybe a Source #
Lookup up a solution from a ChallengeMap
Describes the day: a number between 1 and 25 inclusive.
Represented by a Finite
ranging from 0 to 24 inclusive; you should
probably make one using the smart constructor mkDay
.
Instances
Bounded Day | |
Enum Day | |
Eq Day | |
Ord Day | |
Show Day | |
Generic Day | |
ToJSON Day | Since: advent-of-code-api-0.2.4.2 |
Defined in Advent.Types | |
ToJSONKey Day | Since: advent-of-code-api-0.2.4.2 |
Defined in Advent.Types | |
FromJSON Day | |
FromJSONKey Day | |
Defined in Advent.Types | |
ToHttpApiData Day | |
Defined in Advent.Types Methods toUrlPiece :: Day -> Text # toEncodedUrlPiece :: Day -> Builder # toHeader :: Day -> ByteString # toQueryParam :: Day -> Text # | |
type Rep Day | |
Defined in Advent.Types |
solSpec :: Name -> ChallengeSpec Source #
Get a ChallengeSpec
from a given reified solution (name).
solSpec 'day02a == CS { _csDay = 1, _csPart = a
}