A zipper is a good way to separate the search from the replacement. But the problem at hand does not require such a separation! If you don't need that, a zipper seems like overkill. On Jul 19, 2016 7:39 PM, "Carl Folke Henschen Edman" <carledman@gmail.com> wrote: On Tue, Jul 19, 2016 at 6:13 PM, David Feuer <david.feuer@gmail.com> wrote:
Using a zipper will not get you very far here. The best way would likely be to replace the list with a balanced search tree.
That depends on the pattern of access and usage. For some a zippered list will outperform a self-balancing tree and vice versa. For others a zippered tree, or something else, will beat either. But when seeing the pattern of changing a single element in the middle of a list, a zippered list is the first improved data structure that comes to mind. Carl Edman