this post was submitted on 02 Dec 2024
21 points (95.7% liked)

Nix / NixOS

2279 readers
5 users here now

Main links

Videos

founded 2 years ago
MODERATORS
 

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!

you are viewing a single comment's thread
view the rest of the comments
[–] gavin@fosstodon.org 2 points 6 months ago* (last edited 6 months ago) (9 children)

@F04118F

If I can make the time, I will. But I know @ellyse is doing it. πŸŽ… πŸ‘©β€πŸ’»
She did one last night live on stream.

https://ohai.social/@ellyse/113482901348671949

[–] ellyse@ohai.social 2 points 6 months ago (1 children)

@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/day01

i looked at your solution, good work!

[–] F04118F@feddit.nl 1 points 6 months ago* (last edited 6 months ago) (2 children)

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.

[–] kintrix@linux.community 3 points 6 months ago* (last edited 6 months ago)

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

[–] ellyse@ohai.social 1 points 6 months ago (1 children)

@F04118F which I promptly did away with because I couldn’t be arsed today lol

[–] F04118F@feddit.nl 1 points 6 months ago (1 children)

Nix regex sucks. Is there any package with a reasonable regex matchAll?

[–] ellyse@ohai.social 1 points 6 months ago (1 children)

@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 .

[–] F04118F@feddit.nl 1 points 6 months ago (1 children)

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 spoilerThe way you handle the do and dont is much cleaner

.

[–] ellyse@ohai.social 1 points 6 months ago (1 children)

@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!

[–] F04118F@feddit.nl 1 points 6 months ago

Yeah I was planning on changing the salty README and referencing your comment, thanks for putting the reminder there!

load more comments (7 replies)