Advent of Code is an annual programming puzzle challenge organized by Eric Wastl. From December 1 to December 25, a new puzzle is uploaded every day.
I'm following a self-imposed challenge to use a new programming language every day, for as long as possible.
To run the code from a particular day, check the README in that day's folder.
- Day 1: F#, a functional programming language from Microsoft
- Day 2: Forth, one of the oldest and most popular stack-based programming languages
- Day 3: XSLT, an XML-based language specifically designed to transform XML
- Day 4: A batch file, run with the technically-Turing-complete cmd.exe
- Day 5: Inform 7, a natural-language-based domain specific language for writing interactive fiction
- Day 6: x86-64 assembly, as low-level as I'm willing to get in a day
- Day 7: AWK, a text processing tool often used in shell scripts
- Day 8: COBOL, a verbose old language designed for "business use"
- Day 9: TCL, a homoiconic scripting language where everything is a string
- Day 10: J, a successor to APL with the same concepts but using ASCII identifiers
- Day 11: Lua, a lightweight prototype-based embeddable scripting language
- Day 12: Factor, a stack-based language with types that supports functional programming
- Day 13: Perl, a concise scripting language heavily inspired by shell scripts.
- Day 14: Zig, a low-level programming language meant to compete directly with C.
- Day 15: Crystal, a very user-friendly language inspired by Ruby, with static typing
- Day 16: Prolog, the most popular and widely used logic programming language
- Day 17: Fortran, an extremely efficient language useful for array-oriented programming
- Day 18: Clojure, a popular JVM language in the Lisp family
- Day 19: Erlang, a highly concurrent language useful for distributed applications
- Day 20: Smalltalk, a very influential early OOP language with an active following today
- Day 21: Elixir, a functional language built on top of the Erlang VM, with Ruby-like syntax and powerful metaprogramming features
- Day 22: Julia, a high-performance dynamic language supporting multiple dispatch, metaprogramming, and lots of useful syntactic sugar.
- Day 23: OCaml, a performant strongly-typed language that supports functional and imperative programming.
- Day 24: Chicken Scheme, an extremely minimal but portable scheme dialect
- Day 25: Futhark, a small language designed to compile to efficient GPU or multithreaded CPU code