Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rolandtritsch/scala3-aoc-2024
Here we go again ...
https://github.com/rolandtritsch/scala3-aoc-2024
Last synced: about 18 hours ago
JSON representation
Here we go again ...
- Host: GitHub
- URL: https://github.com/rolandtritsch/scala3-aoc-2024
- Owner: rolandtritsch
- Created: 2024-12-01T09:06:05.000Z (2 months ago)
- Default Branch: trunk
- Last Pushed: 2025-01-16T19:04:12.000Z (26 days ago)
- Last Synced: 2025-01-16T20:24:11.324Z (25 days ago)
- Language: Scala
- Size: 2.61 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# scala3-aoc-2024
Here we go again: [Advent of Code - 2024][aoc2024]!
To make this work you need to run ...
```bash
./mill main.test
./mill main.run
```**Note**: This time around the focus is on learning `scala3`
and using `GitHub Copilot/emacs` and `Codeium/Windsurf` as
much as possible (as a pair programming buddy).**Note**: Initially the (scala3) code was formatted with
braces. Then I decided to switch to indent. To migrate
the code I did run `./mill main.migrate.compile` and
made heavy use of `scalafmt` and `scalafix`.**Note**: You can install a/the pre-push hook with ...
```bash
cd ./.git/hooks
ln -s ../../hook/pre-push .
```
The hook will make sure the code is properly formatted
and linted before each push.## What I have learned?
- Lot's about Scala3 ...
- extensions
- given and using
- indent vs. braces
- ... and (much) more
- Using `scalafmt` (for Scala3)
- Using `scalafix` (for Scala3)
- Using `breeze` to solve linear equation systems
- Using `scala-graph` to find the shortest path in a graph (or 2-dim grid)
- Using `scala-corner` to count the number of corners of regions in a 2-dim grid
- Using `Codeium` and `Windsurf` to write code[aoc2024]: https://adventofcode.com/2024