Module:Rapidité
Ce module sert d'exemple dans la leçon Initiation au Lua avec Scribunto. son utilisation est décrite en détail dans celle-ci et, par conséquent, ce module ne doit pas être modifié sans tenir compte de la leçon.
local p = {}
function f(x)
return math.sqrt((x+1)/(x+3))
end
function g(x)
return (x*2+x+5)^2
end
function h(x)
return 1/math.log(x+5)
end
function chrono(x)
local temps = os.clock()
x(1)
return os.clock() - temps
end
function p.rapide()
local fonction = {f, g, h}
local t, ecoule, repere = 1, 1, 1
for i = 1, 3 do
ecoule = chrono(fonction[i])
if ecoule < t then
repere = i
t = ecoule
end
end
if repere == 1 then repere = "f" end
if repere == 2 then repere = "g" end
if repere == 3 then repere = "h" end
return "La fonction la plus rapide est la fonction "..repere
end
return p