Introduction and Motivation

fun merge( nil, M) = M					
merge( L,nil) = L
merge(L as x::xs, M as y::ys) =
if x<y then x::merge(xs,M)
else y::merge(L,ys);

The above shows the first piece of (useful) code that I remember from university. Larry Paulson’s introduction to ML was the first ever computer science course I took and the MergeSort function was the first time I saw a program do something useful. By the time I started this course, I had no programming experience and knew nothing about computers. That first term, ML was how I thought the world was coded.

So I consider it a closed circle that when the time came to choose the core technology to use in building a backend for Rekki, I chose a functional programming language — elixir.

Seeing the daily challenges we have at building a performant, reliable system that thousands of businesses will use, I thought i’d kick off by admiring a piece of simple code. I hope the team (engineering, product, design) embraces this blog and adds their own thoughts.