Advent Of Code
Advent Of Code
I did advent of code again this year. After several years of not finishing I did manage to clear all the stars this time. I finished all by christmas (aside from 2 annoying part 2’s I delayed and finished in the next few days).
I decided to do it in LISP. I had previously attempted to have a go with LISP in the past but had never got very far.
The first week was spent checking different LISP varients, integrations and editors (I chose Common LISP edited with SLIME in emacs). So I was picking up Common LISP as well as brushing off my very dusty emacs.
After spending a while configuring things (probably too long) I ended up with an emacs that was nice. And very useable on my notebook on windows - the lack of a mouse made me fond of the more key-based approach to navigation. Although I am sure I was only using things at a basic level - I would like to explore using it more on this laptop rather than vscode.
With common lisp it is a bit of a learning curve. I think I achieved what I wanted to but probably not in the best possible way. Some more experience seeing how libraries work would improve things. I picked up the very fun Land of LISP book which I went through to get a guide to how common lisp works.
For me I am reasonably happy with some of the functional aspects but from programming I am used to the safety net of a type-system - in these smaller more self contained projects this was ok but it makes me a bit more nervous for larger projects where you just need to document or “know” various function invarients. I tend to work in the compile / run cycle rather than the more interactive debugging I never really managed to make use of. I would like to see how someone that has mastered it uses it in action.
All in all a good experience. Imight try picking lisp up for more things although I dont think it will be my main programming language.
As it is beyond the deadline for any challenges I have opened up the repository nearly all the code is in one main ile with some of the graph bits moved out.