     { :lists.reverse(acc), [] }
   end
 
+  defp do_split_reverse([h|t], counter, acc) when counter > 0 do
+    do_split_reverse(t, counter - 1, [h|acc])
+  end
+
+  defp do_split_reverse(list, 0, acc) do
+    { :lists.reverse(list), acc }
+  end
+
+  defp do_split_reverse([], _, acc) do
+    { [], acc }
+  end
+
   ## split_while
 
   defp do_split_while([h|t], fun, acc) do

  end

  @doc """
  Takes the first `count` items from the collection. Expects an ordered
  collection.

  ## Examples


  @doc """
  Similar to `find/3`, but returns the index (zero-based)
  of the element instead of the element itself.

  ## Examples

