From 9ef10406c067d0a0532d609212a94519af402b87 Mon Sep 17 00:00:00 2001
From: Marvin Borner
Date: Tue, 7 Mar 2023 00:19:48 +0100
Subject: Added a few advent of code solutions

---
 samples/aoc/2017/01/input        |  1 +
 samples/aoc/2017/01/solve.bruijn | 23 +++++++++++++++++++++++
 2 files changed, 24 insertions(+)
 create mode 100644 samples/aoc/2017/01/input
 create mode 100644 samples/aoc/2017/01/solve.bruijn

(limited to 'samples/aoc/2017')

diff --git a/samples/aoc/2017/01/input b/samples/aoc/2017/01/input
new file mode 100644
index 0000000..8f237ab
--- /dev/null
+++ b/samples/aoc/2017/01/input
@@ -0,0 +1 @@
+12131415
diff --git a/samples/aoc/2017/01/solve.bruijn b/samples/aoc/2017/01/solve.bruijn
new file mode 100644
index 0000000..dac0ed6
--- /dev/null
+++ b/samples/aoc/2017/01/solve.bruijn
@@ -0,0 +1,23 @@
+:import std/Combinator .
+:import std/String .
+:import std/Number .
+:import std/Char C
+:import std/Pair P
+
+self [[((zip 0) ∘ (drop 1) ∘ cycle) 0]] ⧗ Number → (List Number) → (List (Pair Number Number))
+
+part1 sum ∘ eqs ∘ pairs
+	sum foldl [[^0 + 1]] (+0)
+	eqs filter (P.uncurry …=?…)
+	pairs self (+1)
+
+part2 [(sum ∘ eqs ∘ pairs) 0]
+	sum foldl [[^0 + 1]] (+0)
+	eqs filter (P.uncurry …=?…)
+	pairs self /²(length 0)
+
+:test (part1 ((+1) : ((+1) : ((+2) : {}(+2))))) ((+3))
+
+main [parts nums]
+	nums C.number! <$> ^(lines 0)
+	parts [(part1 0) : (part2 0)]
-- 
cgit v1.2.3