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