From 98c5c1c7e39f743b2dc36dd7b1539bb9aba95673 Mon Sep 17 00:00:00 2001 From: Matt Enlow Date: Wed, 27 Nov 2024 11:47:09 -0700 Subject: [PATCH] remove Zipper.reduce/3 - bugged, but more importantly unused --- lib/zipper.ex | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/lib/zipper.ex b/lib/zipper.ex index 969b7577..0cdb17e8 100644 --- a/lib/zipper.ex +++ b/lib/zipper.ex @@ -317,26 +317,6 @@ defmodule Styler.Zipper do if next = next(zipper), do: do_traverse(next, acc, fun), else: {top(zipper), acc} end - @doc """ - Same as `traverse/3`, but doesn't waste cycles going back to the top of the tree when traversal is finished - - Useful when only the accumulator is of interest, and no updates to the zipper are. - """ - @spec reduce(zipper, term, (zipper, term -> {zipper, term})) :: term - def reduce({_, nil} = zipper, acc, fun) do - do_reduce(zipper, acc, fun) - end - - def reduce({tree, meta}, acc, fun) do - {{updated, _meta}, acc} = do_reduce({tree, nil}, acc, fun) - {{updated, meta}, acc} - end - - defp do_reduce(zipper, acc, fun) do - {zipper, acc} = fun.(zipper, acc) - if next = next(zipper), do: do_reduce(next, acc, fun), else: acc - end - @doc """ Traverses the tree in depth-first pre-order calling the given function for each node.