mercredi 28 novembre 2007

Programmation poétique - Chapitre II : La traque du premier Bignum

Dirty Harry, "le crade", fixait le fond de son verre de whisky vide, enfoncé dans son canapé miteux. Dans sa gueule de bois habituelle, il ressassait. Trois jours. Trois foutus jours que les petits gangers Fixnum disparaissaient dans la ville rouge... Le Ruby, ce quartier où tout se trouve sous les lampadaires écarlates des bouges puants et des claques luxueux. Harry avait déjà fait hurler son 44 dans ce secteur auparavant... "La Disparition des Pointeurs" titrait la presse à cette époque. Un certain Matz était à l'origine du coup : aujourd'hui on pourrait admirer un coucher de soleil à travers son thorax...

Harry se leva, faisant craquer ses genoux cagneux. Il fallait qu'il trouve une solution, et vite. Les Bignumz commençaient à avoir une emprise malsaine sur le quartier, trimballant leur graisse dans d'énormes SUV avec vitres fumées... Il savait qu'ils étaient à l'origine du coup. Quand un gang commence à décliner, cherche celui qui grossit. Harry connaissait ses classiques. Il lui fallait le boss. Le numéro 1. Le premier des Bignumz.

Il avait déjà commencé à chercher. Fifty, vielle balance Fixnum lui en avait dégotté un bien gras avec un énorme "1500456000" tatoué sur le torse... son matricule en taule à Detroit. Dirty Dirt n'avait pas le temps d'interroger tous les pouilleux de la création dans ce quartier de dingues : il fallait faire vite. Alors il eut une idée...

def who_the_fuck_is_Bignum down, up
min = down
max = up
dist = max - min
while dist > 1
mid = (max + min)/2
if mid.class == Bignum then
max = mid
elsif mid.class == Fixnum then
min = mid
end
dist = max - min
end
puts max.to_s
end

who_the_fuck_is_Bignum 50, 1500456000


Il tenait son homme. 1073741824. Un autre matricule d'ex-ex-taulard s'il ne bougeait pas... Il bougea. L'acier hurla une fois de plus dans la main de Dirty Harry.

Plus tard au bar, l'inspecteur sirotait son énième verre d'alcool d'homme pour oublier la perspective de nettoyer sa moquette imbibée de sang en rentrant chez lui. Alors qu'il venait de raconter de sa voix rocailleuse, à moitié ivre, son enquête à un autre paumé se désintégrant à côté de lui au comptoir, l'inconnu se leva et gueula :

Mais pourquoi t'as pas regardé la DOC CONNARD !!!

Moralité :
  1. La dichotomie est plus rapide que la recherche exacte.
  2. Les entiers sont des Fixnum en dessous d'un bit (2**30), et deviennent Bignum au dessus. Ruby le gère de façon transparente pour l'utilisateur.
  3. Read The F*cking Manual.

0 commentaires: