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/2020/01/solve.bruijn | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 samples/aoc/2020/01/solve.bruijn (limited to 'samples/aoc/2020/01/solve.bruijn') diff --git a/samples/aoc/2020/01/solve.bruijn b/samples/aoc/2020/01/solve.bruijn new file mode 100644 index 0000000..39bfcbc --- /dev/null +++ b/samples/aoc/2020/01/solve.bruijn @@ -0,0 +1,22 @@ +# TODO: While this obviously isn't the most performant solution, it should still +# be a lot faster than it currently is. I think there's some problem with +# underlying strictness/laziness + +:import std/Combinator . +:import std/String . +:import std/Math . +:import std/Pair P + +part1 z [[rec]] + rec ((P.uncurry …+… ^0) =? (+2020)) case-done case-cont + case-done P.uncurry …⋅… ^0 + case-cont 1 ~0 + +part2 z [[rec]] + rec (∑(^0) =? (+2020)) case-done case-cont + case-done ∏(^0) + case-cont 1 ~0 + +main [parts nums] + nums number! <$> ~(<~>(lines 0)) + parts [(part1 (cross 0 0)) : (part2 (cross3 0 0 0))] -- cgit v1.2.3