People in the scala, f# and especially haskell world seem to use powerful but strange terminology and abstractions to build software.
What is that all about?
1972 - Dennis Ritchie invents a powerful gun that shoots both forward and backward simultaneously. Not satisfied with the number of deaths and permanent maimings from that invention he invents C.
a Scala library for functional programming







All about composition



In c#, java, scala we have an iterator interface, which exposes hasNext() and next() functions.
All things implementing the iterator interface can now be used equivalently, in for loops, and other library functions
A moniod interface can similarly be written. With 2 methods: