Holds both MSc and PhD in Mathematics, having done some research in optimisation, neural networks (aka machine learning) and distributed systems (before these were known as a cloud). However his interests in programming are mainly pragmatic, as for over 10 years he worked for various institutions in the financial sector helping them with their unquenched thirst for automation and computerisation. Currently developing applications in Scala for one of major investment banks.
In this talk we do some micro-benchmarking of various functional and procedural constructs in languages like Scala, Haskell, F#, D and C++. We analyze the impact of diverse programming styles, all in the functional genre, varying from pragmatic ""hidden mutation"" to highly monadic. We try to infer the overhead of particular constructs in a single programming language as well the alignment of those constructs with a given language. We also research the impact of constructs being used on the compilation time, which, in case of some languages, can become unacceptable.
The examples range from elementary like quicksort and heapsort to more complex like dictionaries and trees. Also, some common idioms like error handling and IO are being analysed.
On a side-note we also ask a deeper question - what is and what isn't functional programming and how its definition relates to the performance and correctness of programs.