Onze dagmethode #12: Comparable#at_least
Geplaatst door Michiel de Mare wo, 20 feb 2008 08:00:00 GMT
Het kostte me even voordat ik de algemeen aanvaarde manier om de grootste van twee waarden te bepalen had gevonden. Ik verwachtte een methode in Kernel
of in Comparable
. In plaats daarvan is de Ruby Manier om een array met beide waarden aan te maken en daaraan te vragen wat de hoogste waarde is.
[x,y].max
Nou, kort is het zeker, maar het staat me toch niet aan, om drie redenen:
- Je maakt een array aan om twee ints te vergelijken? Dat moest haast wel vreselijk inefficiƫnt zijn, toch? Goed, ik weet dat je je als ervaren Rubyist niet druk hoort te maken om efficiƫntie.
- Ik vind de naam verwarrend. Wanneer ik max hoor denk ik aan een maximum. Ik denk aan maximaal. De maximumsnelheid in Nederland:
[you.speed,120].min
. Klopt niet. - Door twee waarden in de array op te nemen plaats je ze op gelijke voet, vaak ten onrechte. Vaak is de tweede waarde alleen een voetnoot. Je zegt: ik wil waarde size (en trouwens, die moet minstens 1.2 zijn.) Dat wordt niet uitgedrukt door
[size, 1.2].max
at_most
and at_least
:
size.at_least(1.2)
seconds / attempts.at_least(1)
Implementatie te triviaal om te laten zien.