Proposal and discussion: Deprecate Data.Set.mapMonotonic and Data.Map.mapKeysMonotonic; add correctly named functions
Edward Kmett
ekmett at gmail.com
Tue Jul 12 05:44:53 UTC 2016
I'm also slightly biased against renaming, as the intent is signaled pretty
clearly.
-Edward
On Mon, Jul 11, 2016 at 6:12 AM, Andreas Abel <abela at chalmers.se> wrote:
> I thought the current functions are quite clear with a bit of common
> sense. They assume the renaming of keys does not change their relative
> order, so the underlying tree structure of the map/set can remain as-is.
>
> Of course, as you point out, the names are not precise, but cannot the
> documentation add what is not reflected in the names?
>
> The question is, as always, if the breakage caused by the renaming
> compensates for having the optimal name. I am slightly biased against the
> renaming.
>
> --Andreas
>
>
> On 09.07.2016 02:28, David Feuer wrote:
>
>>
>> On Jul 8, 2016 7:18 PM, "Ivan Lazar Miljenovic"
>> <ivan.miljenovic at gmail.com <mailto:ivan.miljenovic at gmail.com>> wrote:
>> >
>> > On 9 July 2016 at 03:49, David Feuer <david.feuer at gmail.com
>> <mailto:david.feuer at gmail.com>> wrote:
>>
>> > > Data.Set: mapStrictlyIncreasing and mapStrictlyDecreasing
>> > > Data.Map: mapKeysStrictlyIncreasing and mapKeysStrictlyDecreasing
>> >
>> > With the latter function also flipping the underlying tree structure?
>>
>> I'm not quite sure what you mean, but I think the answer is yes.
>>
>> mapKeysStrictlyDecreasing (\x -> -x) (fromList [1..10]) === fromList
>> [(-10) .. (-1)]
>>
>> >
>> > > Data.Map presents another possibility, however. We could make the
>> > > replacements more general, giving them types
>> > >
>> > > Ord k => (k -> v -> (k', v')) -> Map k v -> Map k' v'
>> > >
>> > > and allowing the user to map over both keys and values in one pass.
>> >
>> > Though IIUC this provides no way of specifying that "I'm sure this
>> > function has a 1-1 monotonic relationship so you can just update the
>> > keys without changing the structure" (in the sense of there's no way
>> > to distinguish between the increasing and decreasing sense).
>>
>> That is the pre-condition. There still needs to be one for strictly
>> increasing functions and another for strictly decreasing ones, since
>> they lead to reversed tree structures.
>>
>> >
>> > Overall, I'm about +0.5 from the naming sense of the current
>> > functions, but have used these in the past.
>>
>> I don't understand this statement.
>>
>>
>>
>> _______________________________________________
>> Libraries mailing list
>> Libraries at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>
>>
>
> --
> Andreas Abel <>< Du bist der geliebte Mensch.
>
> Department of Computer Science and Engineering
> Chalmers and Gothenburg University, Sweden
>
> andreas.abel at gu.se
> http://www2.tcs.ifi.lmu.de/~abel/
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20160712/3c3e1a78/attachment.html>
More information about the Libraries
mailing list