aoc/2017/01/solve.bruijn

Problem description

:import std/Combinator .
:import std/String .
:import std/Number .
:import std/Char C
:import std/Pair P

self [[(zip 0) ∘ (drop 1) ∘ cycle 0]]

main [φ (cons ⋔ solve) part1 part2 (C.char→number <$> (trim 0))]
	solve (filter (P.uncurry eq?)) → (foldl \(g add head) (+0))
	part1 self (+1)
	part2 self /²(length 0)