Skip to content

🎅🏼 My take on the Advent of Code challenge 2018/2019. I decided to take the opportunity of solving the puzzles using different programming languages.

Notifications You must be signed in to change notification settings

mmalmsten/advent-of-code-2019

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 

Repository files navigation

🎄 Advent of Code 2018-2019 🎄

Here's my take on the Advent of Code challenge. Instead of choosing "the right tool for the job", I decided to take the opportunity of solving the problem using different programming languages (so far 19).

Some of the programming languages I know by heart, others I had never tried and barely seen before this challenge. And some occasions were definitely a case of "the absolutely wrong tool for the job". So there's a BIG disclosure regarding code quality... 🙈🙈🙈

2018

Dec 1st 2018: Golang

🔍First appeared 2009. Concurrent, functional, imperative, object-oriented.

Dec 2th 2018: Elixir

🔍First appeared 2011. Functional, concurrent, distributed. Inspired by Ruby, Erlang, and Clojure. Builds on top of Erlang and is running on the BEAM.

💡Elixir comes with a detailed and well-written documentation

Dec 3th 2018: Swift

🔍First appeared 2014. General-purpose, multi-paradigm. Influenced by e.g. Objective-C, Python, Haskell.

Dec 5th 2018: Perl

🔍First appeared 1987. General-purpose, functional, imperative, object-oriented, reflective. Influenced by e.g. BASIC, C, Lisp. Influenced JavaScript, Julia, PHP, Python, Ruby.

2019

Dec 1st 2019: C

🔍First appeared 1972. Imperative (procedural), structured. Influenced e.g. C++, Java, PHP, C#.

📚C Programming Language (Brian W. Kernighan, Dennis M. Ritchie)

Dec 2nd 2019: Lisp

🔍First appeared 1958. Functional, procedural, reflective, meta. Influenced e.g. Erlang, Prolog, Forth, Haskell.

💡You can find information here about how to download and get started with Lisp.

Start the sbcl shell and run using the following command:

(load "puzzle2-step1.lisp")
(start)

Dec 3rd 2019: PHP

🔍First appeared 1995. Imperative, functional, object-oriented, procedural.

Dec 4th 2019: Smalltalk (Squeak)

🔍First appeared 1972 (Squeak in 1996). Object-oriented with its own virtual machine, on which the code can be changed while the program is running.

💡Squeak can be downloaded here and there is an outstanding aide-memoire to be found here.

Dec 5th 2019: Scala

🔍First appeared 2004. Functional, imperative, object-oriented. Running on the JVM.

💡A Scala tutorial can be found here

Dec 6th 2019: Julia

🔍First appeared 2012. Procedural, functional.

Dec 8th 2019: Ruby

🔍First appeared 1995. Functional, imperative, object-oriented.

Dec 9th 2019: Erlang

🔍First appeared 1986. Concurrent, functional.

Dec 10th 2019: Lua

🔍First appeared 1993. Imperative, functional.

💡Lua can be tried online here

Dec 12th 2019: Java

🔍First appeared 1995. Object-oriented (class-based), imperative.

Dec 14th 2019: JavaScript

🔍First appeared 1995. Event-driven, functional, imperative, object-oriented.

Dec 16th 2019: Haskell

🔍First appeared 1990. Functional.

Dec 18th 2019: Prolog (work in progress)

💡SWI Prolog can be tried online here

Dec 22th 2019: Python

🔍First appeared 1990. Functional, imperative, object-oriented, reflective.

Dec 24th 2019: C#

🔍First appeared 2000. Structured, imperative, object-oriented, event-driven, task-driven, functional, generic, reflective, concurrent.

About

🎅🏼 My take on the Advent of Code challenge 2018/2019. I decided to take the opportunity of solving the puzzles using different programming languages.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published