clamp function in base

Sandy Maguire sandy at sandymaguire.me
Sat Aug 15 18:19:01 UTC 2020


Sounds good. For whatever reason the tupled arguments make me feel better
about the `high<low` having undefined behavior. I'll make the change on the
MR.

On Sat, Aug 15, 2020 at 8:22 AM Emily Pillmore <emilypi at cohomolo.gy> wrote:

> +1, though, David has good points about unnecessary laziness. I'm fine
> with the name and the signature
>
> ```
> clamp :: Ord a ⇒ (a,a) → a → a
> ```
>
> (or some variation on the theme).
>
>
> On Fri, Aug 14, 2020 at 5:38 PM, Sandy Maguire <sandy at sandymaguire.me>
> wrote:
>
>> Hi all,
>>
>> It seems to me that base is missing the very standard function `clamp ::
>> Ord a => a -> a -> a -> a`:
>>
>> ```haskell
>> clamp :: Ord a => a -> a -> a -> a
>> clamp low high = min high .max low
>> ```
>>
>> I propose it be added to Data.Ord. It's useful, generic, and non-trivial
>> to get right (the "big" number goes with "min" -- causes me cognitive
>> dissonance every time.)
>>
>> Thanks,
>> Sandy
>>
>> _______________________________________________
>> 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/20200815/fc5a36bf/attachment.html>


More information about the Libraries mailing list