aoc/2018/01/solve.bruijn

Problem description

:import std/Combinator .
:import std/String .
:import std/Math .
:import std/Set S

part1 ∑‣ ⧗ (List FrequencyDiff) → Frequency

part2 z [[[[rec]]]] S.empty (+0) ⧗ (List FrequencyDiff) → Frequency
	rec (S.has? 1 2) case-end case-cont
		case-cont 3 (S.add 1 2) (1 + ^0) ~0
		case-end 1

main [parts nums]
	nums string→signed-number <$> (init (lines 0))
	parts [(part1 0) : (part2 (cycle 0))]