This repository shows AoC 2022 solved using idiomatic Kotlin. The code written in this project tries to adhere to the following principles
- immutability over mutability
- expressions over statements
- preference of functional programming
- reduction of state and side effects
- standard library over writing from scratch
- the more syntax sugar the better
Some exceptions can be made to the above rules if the problem requires further optimization, better readability or for other reasons. Not all solutions are optimal in terms of space and time complexity, but execution time should be reasonable. Sometimes syntax can be fancy just for the sake of being fancy.