Actually, you are correct.  There is no recursion.
It&#x27;s perform pattern matching, the functions might have the same name, but it&#x27;s not recursive, because they are different functions.<p>Let&#x27;s pretend we can alias these functions using AS<p><pre><code>  def map_single({:ok, res}) AS fun1

  def map_single({:cols_and_first, cols, first_row}) AS fun2

  def map_single({:zipped, list}) AS fun3

  def map_single({:error, err}) AS fun4

</code></pre>
Notice how it&#x27;s called.<p>fun1 calls fun2<p>fun2 calls fun3<p>fun4<p>to be recursive, a function must call itself or another function that calls it.  neither of this is true.  What the article is talking about is pattern matching.