Using Unfolds to Iterate in Haskell and OCaml

This post picks up from where we left off here, in which I explained anamorphisms.  Here we look at another example of applying unfolds: iterate.  Iterate Iterate is one of the most common uses of unfold.  The definition of the iterate function is: iterate f x = Cons (x, iterate…

Programming with Lenses in Haskell and OCaml

In this post, I continue going through the famous paper “Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire” by Meijer et al.  They show that we can treat recursions as separate higher order functions known as recursion schemes.  Each of the four things in the paper title corresponds to…