AoC 2025 - Day 1
This commit is contained in:
36
aoc2025/Aoc.newt
Normal file
36
aoc2025/Aoc.newt
Normal file
@@ -0,0 +1,36 @@
|
||||
module Aoc
|
||||
|
||||
import Prelude
|
||||
|
||||
-- `by` is the first argument for use in `map`
|
||||
nums' : String → String → List Int
|
||||
nums' by s = map stringToInt $ filter (_/=_ "") $ split (trim s) by
|
||||
|
||||
nums : String → List Int
|
||||
nums s = map stringToInt $ filter (_/=_ "") $ split (trim s) " "
|
||||
|
||||
indexOf? : ∀ a. {{Eq a}} → a → List a → Maybe Nat
|
||||
indexOf? {a} z xs = go Z z xs
|
||||
where
|
||||
go : Nat → a → List a → Maybe Nat
|
||||
go ix z Nil = Nothing
|
||||
go ix z (x :: xs) =
|
||||
if z == x then Just ix else go (S ix) z xs
|
||||
|
||||
-- TODO move to Aoc library
|
||||
Point : U
|
||||
Point = Int × Int
|
||||
|
||||
instance Add Point where
|
||||
(a,b) + (c,d) = (a + c, b + d)
|
||||
|
||||
instance Sub Point where
|
||||
(a,b) - (c,d) = (a - c, b - d)
|
||||
|
||||
|
||||
|
||||
-- instance Ord Point where
|
||||
-- (a,b) < (c,d) = a < c || a == c && b < d
|
||||
|
||||
-- instance Eq Point where
|
||||
-- (a,b) == (c,d) = a == c && b == d
|
||||
Reference in New Issue
Block a user