tanenbaum
advent-of-code
tanenbaum | advent-of-code | |
---|---|---|
1 | 4 | |
58 | 0 | |
- | - | |
5.8 | 9.3 | |
5 months ago | 5 months ago | |
OCaml | C++ | |
BSD 3-clause "New" or "Revised" License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tanenbaum
-
Advent of Code 2023 is nigh
I built an OCaml starter project for Advent of Code that I've been using. Take a look if you'd like to give OCaml a spin!
https://github.com/Sixstring982/tanenbaum
advent-of-code
-
-❄️- 2023 Day 10 Solutions -❄️-
language c++
-
Advent of Code 2023 is nigh
I did 2016 in Haskell and 2018 in Rust. Haskell was kind of a pain since I had to do a ton of tail recursion. Rust would be a lot easier since it allows you to be imperative when you need to.
And I definitely only used a tiny subset of either language because I wanted to get the solution as quickly as possible.
[1] https://github.com/xdavidliu/advent-of-code/tree/main/2016
-
Why Haskell Is Interesting?
So I came to Haskell from Scheme background, so the tail recursion was actually natural to me. In fact, about a month ago I did 2016 Advent of Code in Haskell, and toward the end, I felt like I was abusing tail recursion [1] to write iterative algorithms like breadth-first-search by essentially "repeatedly consing on to the params of tails calls", as Lispers would probably call it.
The whole I'm wondering if I'm just writing Haskell "with a heavy Scheme accent", since I see others' Haskell code make extensive use of state monads (which I still haven't attempted to understand), and I also found others' using way more of the monadic / applicative operators like "bind", etc than I have.
I found the hard part of Haskell not the iteration, which from tail recursion was completely natural and straightforward, but rather worrying about the efficiency of the "repeatedly consing" part. For things like stacks, the cost is O(1), but for things like Data.Array, I wasn't sure how much shared structure there was; I mean it could totally be copying the entire array every time I "mutate" an element (not really, since it was still sort of "consing" onto the old array and not actually mutating it).
[1] https://github.com/xdavidliu/advent-of-code/blob/main/2016/d...
What are some alternatives?
advent_of_code_ex - Advent of Code solutions in Elixir, and a bunch of musings on them.
kino_aoc - A helper for Advent of Code (a smart cell) for Elixir Livebook
advent-of-code-rust - 🎄Starter template for solving Advent of Code in Rust.
fs_playground - F# Playground
AdventOfCode2023
the-power-of-prolog - Introduction to modern Prolog
advent-of-code - Advent of Code 2022 solutions
adventofcode - My Advent of code challenges
advent2023 - scribblings at advent of code 2023