17 Dec 2018
Some time ago I had an argument about the notion of behavior and the definitions of referential transparency and purity in functional programming. Due to my incomplete knowledge I could not back my arguments and, therefore, decided to do some research. This post is a write up of my research and primarily serves me as a source. Nonetheless, I welcome you to comment and correct my result.
More...
03 Sep 2017
In my last article, I discussed the idea of using higher-order functions to enable code reuse and as a means of describing effects.
With higher-order functions, transactions can first be described and then executed.
Though, the composition of transactional functions remained as duplicated code in each CRUD method.
More subtle, a function does not convey the information whether a transaction is executed during application.
This article presents a monadic transaction as a solution to both problems.
More...
19 Jul 2017
In March I gave my first talk at a conference.
It was about the combinator pattern and I wondered why there was only little feedback in regard of the pattern itself.
The only question I got was surprisingly about monads.
This kept me wondering and a little idea came to my mind: higher-order functions are useful.
This article is the result of this thought, where I am going to show how to use higher-order functions for code reuse and as a means of describing effects.
More...
08 May 2017
Sometime last year I stumbled over the excellent post of twenty ways to do FizzBuzz in JavaScript.
I asked myself, how some functional solutions in Java 8 and vavr could look.
In this article I present 6 different solutions using functional data structures, higher order functions and property checking.
All these solutions adhere to the test harness I introduced in my last article.
More...
13 Mar 2017
Last year at Socrates Matthias gave a little introduction how GitHub makes GitHub. A little collection of 14 statements, called zen, capture the core values and principles. This zen is available through the public API.
More...