lunarised.com

Here are all the posts in the Programming category

Ah yes. A new year! Exciting for all. I hope everyone reading this got to have some quality time with their loved ones over the break and managed to fend off the vicious beast of capitalism and actually find a way to enjoy yourself without resorting to pulling out the ole money card. I had a very cozy X-Mas / New Years period, which I will detail in full right now!

Ah yes. Dead trees with Ink sprayed on them. Truly one of the most morbid ways to describe books, but it’s a way I may have described them in the recent past. However… I have recently developed quite a liking for books, Specifically, Programming books and Personal Development books! And I’m about to go into some sort of depth as to why!

What books do I currently own?

I have purchased a bunch of books within the last few months, More so than I could ever read in those months, but I do intend to go through them all! So, currently on my bookshelf I have

Well… I guess its that time of year again where I try advent of code and see how long it takes before I want to kill myself… And this year… I am committed to doing it in C89.

Why C89?

C89 is a language I have fought with since I did COSC242 in university. It is a very stripped down version of C, with little to no mercy given to the programmer. Especially in things like code structure. I especially dislike the lack of booleans, meaning I need to use integers to represent basic flags.

Ok so… I’ve decided to add some decoration to my desk at work in the form of a bot.

What What in the Bot?

I’m calling the bot “Grimey Bot” which will be a sucessor to steevo bot. I hope that I can write it in C although there are some practical limitations to this project, mostly being that it needs to interface via GPIO to a display output, which I have decided to be e-ink.

I have recently been learning a lisp language, which I thought would be fun to talk about. It’s Racket, and I am again thanking my homie @tA for his continued support in learning this somewhat different language

Evaluation

Everything in racket is evaluated. This means you can do very mathematical looking functions, like the following

(define (quadPos a b c) (
    (/ 
    (+ (* b -1) (sqrt (- (* b b) (* 4 a c)) )) 
    (* 2 a))))

which is the quadratic formula, believe it or not… (for the + anyway)…

Ever since I learnt to program, I have been actively trying to push myself as hard as I can to understand the fundamentals of programming as well as I would ever need to. But recently, I’ve realized how much I just don’t understand, thanks to the brilliant discovery of functional programming.

What is functional programming?

If you are reading this, you 99% know what functional programming is, and why I might be drawn to it. But incase you live under a rock, or are just interested in reading some potentially wrong information, Functional Programming is a paradigm of programming that is based on the concept of composing mathematical functions to compute, as opposed to using state in other paradigms.