[squeak-dev] [Pharo-users] min:max:
Ben Coman
btc at openinworld.com
Sat Apr 21 11:41:28 UTC 2018
On Sat, 21 Apr 2018, Ben Coman wrote:
>
> On 21 April 2018 at 03:51, Hilaire <hilaire at drgeo.eu> wrote:
>> Hi,
>>
>> Out of curiosity.
>>
>> I always found the #min:max: confusing and lost in its
>> expressiveness.
>>
>> One should write:
>>
>> 10 min: 48 max: 12
>>
>> to expect 12.
>>
>> but logically one (at least me) may want to express it as:
>>
>> 10 min: 12 max: 48
>>
>> Then when reading its source code, it is even more confusing:
>>
>> min: aMin max: aMax
>> ^ (self min: aMin) max: aMax
>>
>> Are not the argument names inversed in their meaning, if any?
>>
>>
>> I would agree. I see most use by Color like...
>>
>> Color>>adjustBrightness: brightness
>> "Adjust the relative brightness of this color. (lowest value is
>> 0.005 so that hue information is not lost)"
>>
>> ^ self class
>> h: self hue
>> s: self saturation
>> v: (self brightness + brightness min: 1.0 max: 0.005)
>> alpha: self alpha
>>
>> Trying to read that twists my brain.
>>
>>
>> I can understand the intent from the implementation
>> min: aMin max: aMax
>> ^ (self min: aMin) max: aMax
>>
>> but that message might more properly be #min:thenMax:
>> However something like
>> (self brightness + brightness boundedBy: 0.005 and: 1.0)
>> (self brightness + brightness boundedMin: 0.005 max: 1.0)
>> seems more intention revealing.
>>
>>
>> Altering #min:max semantics would make awful portability,
>> but perhaps it should forward to a new method to make it clear the other
>> is preferred.
>>
>> Would the Squeak community be amenable to a similar change?
>> I'd be happy to contribute the changes to the Squeak Inbox.
>>
>
On 21 April 2018 at 17:56, Levente Uzonyi <leves at caesar.elte.hu> wrote:
> Squeak has #clampLow:high: for this reason.
>
>
Thanks Levente. Thats a good one.
With similar usage clamping signals in electronics, this is worthwhile to
adopt.
https://pharo.fogbugz.com/f/cases/21758/Replace-min-max-with-clampLow-High
cheers -ben
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20180421/f7acbaf0/attachment.html>
More information about the Squeak-dev
mailing list
|