Recently got started with Nix and Home-Manager. I thought Advent Of Code would be a good way to get more comfortable with the Nix language.
I don’t think I ever made it beyond Day 6 though, even in my most comfortable language (Python) so no idea where this will strand.
I am learning a lot about Nix though!
Have you used the Nix language outside of configuration? Let’s share and discuss!
I definitely am: https://git.sr.ht/~kintrix/aoc2024
(The README is wrong, just copied it over from last year)
Love the structure of your code. Exposing a part1 and part2 result from the same source file is a great idea
If I can make the time, I will. But I know @ellyse is doing it. 🎅 👩💻
She did one last night live on stream.@gavin @F04118F yup! thats a link to a 2019 AoC, but here’s my video for day 1 this year https://www.youtube.com/live/P/_3rUzAN0vw
the code is here: https://github.com/ellyxir/advent/_of/_code/tree/main/2024/nix/day01i looked at your solution, good work!
Your code looks awesome, I’m definitely going to steal some ideas from that, especially the
lib.pipe
really cleans up a lot of unnecessary bindings I did.Doing a
with import ./utils.nix
is also a lot cleaner than nesting let statements.You can also use the pipe operators; but they are still experimental features.
foo (bar (baz x))
=x |> baz |> bar |> foo
=foo <| bar <| baz <| x
@F04118F which I promptly did away with because I couldn’t be arsed today lol
Nix regex sucks. Is there any package with a reasonable regex matchAll?
@F04118F if it’s for todays advent of code, I used split and it worked fine. See my live steam on YouTube or my GitHub .
Somehow I completely missed that split can do match groups… Oopsie! I did it in Python today but I did make a completely functional (and way too complicated) algorithm.
Tap for spoiler
The way you handle the do and dont is much cleaner
.
@F04118F if i had known about match i probably would have gotten stuck also lol but luckily i used split once before and remembered it :) i made an issue in your github, hope thats ok, just to mention this in case you didnt see it on fedi!