Sometimes the only way to grok a functional programming concept is reimplementing it. Monoids are a mathematical and functional structure that it's difficult to find appealing at a first glance, but that shines when employed in some real problem. I've taken the lesson from Dave Fayram and implemented the same approach in PHP. PHP is not a functional language, lacking lazy evaluation and immutabili