<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Fri, Nov 27, 2015 at 6:21 AM Richard A. O'Keefe <<a href="mailto:ok@cs.otago.ac.nz">ok@cs.otago.ac.nz</a>> wrote:</div><div><cut gb_trees:updatef impl></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
(1) What's a good name for the function?  Update really is<br>
    the right name for it, but the existing 'replace'<br>
    function is called 'update'.<br></blockquote><div><br></div><div>Sigh, maybe 'modify' or 'change'.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
(2) What should happen if the key is not present in the<br>
    tree?  gb_trees as its stands has an interface I<br>
    find complex because practically everything occurs<br>
    in two or three copies: assume key present, assume key<br>
    absent, allow for either possibility.  Assuming it's<br>
    absent doesn't make sense here, because there'd be<br>
    nothing to pass to Fun.  But that leaves two copies,<br>
    one which would err if the key was absent and the other<br>
    which would just not change the tree.<br></blockquote><div><br></div><div>IMO it should behave as gb_trees:update/3, dict, orddict and maps  does, i.e. assume the key is present, you can not update something that is not there.</div><div><br></div><div>Add docs and test cases to the pullreq.<br></div><div>And while you are at it the array module need an update/3 as well :-)<br></div><div><div><br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div></div>