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
Vandaar, at_most and at_least:

size.at_least(1.2)
seconds / attempts.at_least(1)

Implementatie te triviaal om te laten zien.

Recommend Michiel de Mare

Geplaatst in ,  | geen reacties

Reacties

(Laat url/e-mail achter »)

   Voorvertoning