RobertBendun / advent-of-code-2021

Advent of Code solutions, each in different programming language! https://adventofcode.com/2021

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Advent of Code 2021

Each day in different programming language:

Journal

Day 1: Bash

Day 2: Natalie, Ruby implementation, compiled to C++, by Tim Morgan.

Getting Natalie to work was quite easy, even though I know nothing about Ruby and it's ecosystem. This lead to making pull request to the compiler. Natalie in this moment does not support readlines method so I needed to write quick version myself. Will later contribute less hacky implementation.

Hacky implementation of IO#readlines

Day 3: Nim, indentation-based systems programming language with rich macro system

The most hilarious requirement that I have seen from "C++ replacement": Filenames have required syntax. Sorry buddy, file 3a.nim does not match our module syntax, even though you are never going to use is as a module you are required to match!

Documentation is pretty hard for explorational approach, but maybe it's my fault.

My solutions seem horrrible, need to refactor them later.

Day 4: F#

Decided to use VSCode since it's recommended by most tutorials. A lot of operations that are provided in Haskell are missing, which make poor functional expirience. Maybe it's fault of lack of tools like Hoogle or my own assumptions.

Day 5: Fortran

A language I had no expectations for, and yet it surprised me the most. This level of support for programming with arrays is not common 30 years later. It feels like functional programming is a distraction for right model for data oriented language.

Day 6: Nasm

Day 7: Haskell

Day 9: Julia

Seems like the best modern scripting language in 2021.

Day 10: Rust

Out of all languages that I tried in this challange, this is the one where you feel like you are fighing against the language. Standard library is huge, and quite nice, but language itself cannot be considered ergonomic.

About

Advent of Code solutions, each in different programming language! https://adventofcode.com/2021


Languages

Language:Fortran 22.1%Language:F# 18.5%Language:Nim 14.2%Language:Rust 11.2%Language:Julia 10.6%Language:Assembly 9.4%Language:Shell 5.1%Language:Ruby 4.5%Language:Haskell 3.3%Language:Makefile 1.2%