The always learning Marty’s software engineering journey

  • Functional Typeclasses 2: `Monoid`

    This is the second of a series of articles that deep dives a few very powerful type classes that every functional programmer should know. For example, Monoid, Functor, Applicative, Alternative and Monad are all prevalent in production code. We explain them with examples in Haskell. This series assumes the audience is familiar with some functional…

  • Functional Typeclasses 1: Overview and `Semigroup`

    This is the first of a series of articles that deep dives a few very powerful type classes that every functional programmer should know. For example,Monoid, Functor, Applicative, etc. These are indeed so functional that they are prevalent in Haskell production code. We explain them with examples in Haskell. This series assumes the audience is…

  • Hylomorphism Explained

    This is the ninth of a series of articles that illustrates functional programming (FP) concepts. As you go through these articles with code examples in Haskell (a very popular FP language), you gain the grounding for picking up any FP language quickly. Why should you care about FP? See this post. In some earlier posts…

  • You Can Unfold So Much More with Monoid: Examples

    This is the eighth of a series of articles that illustrates functional programming (FP) concepts. As you go through these articles with code examples in Haskell (a very popular FP language), you gain the grounding for picking up any FP language quickly. Why should you care about FP? See this post. In the last post,…

  • More on Anamorphism: Unfolding More Than List in Haskell

    This is the seventh of a series of articles that illustrates functional programming (FP) concepts. As you go through these articles with code examples in Haskell (a very popular FP language), you gain the grounding for picking up any FP language quickly. Why should you care about FP? See this post. In the last post,…

  • Anamorphisms aka Unfolds Explained

    This is the sixth of a series of articles that illustrates functional programming (FP) concepts. As you go through these articles with code examples in Haskell (a very popular FP language), you gain the grounding for picking up any FP language quickly. Why should you care about FP? See this post. In the last post,…

  • Folding Nonempty Structures In Haskell

    This is the fifth of a series of articles that illustrates functional programming (FP) concepts. As you go through these articles with code examples in Haskell (a very popular FP language), you gain the grounding for picking up any FP language quickly. Why should you care about FP? See this post. In the last post,…

  • Catamorphisms aka folds explained

    This is the fourth of a series of articles that illustrates functional programming (FP) concepts. As you go through these articles with code examples in Haskell (a very popular FP language), you gain the grounding for picking up any FP language quickly. Why should you care about FP? See this post. In the last post,…

  • More on types, typeclasses and the foldable typeclass

    This is the third of a series of articles that illustrates functional programming (FP) concepts. As you go through these articles with code examples in Haskell (a very popular FP language), you gain the grounding for picking up any FP language quickly. Why should you care about FP? See this post. In the last post,…

  • Higher Order Functions: Lambda calculus, Currying, Maps

    This is the second of a series of articles that illustrates functional programming (FP) concepts to imperative programmers. As you go through these articles with code examples in Haskell (one of the most popular FP languages), you gain the grounding for picking up any FP languages quickly. Why should you care about FP? See this…