Aller au contenu

Module:Utilitaire

Cette page fait l’objet d’une mesure de semi-protection étendue.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 15 août 2015 à 15:04 et modifiée en dernier par TomT0m (discuter | contributions) (Nouvelle page : local utils = {} function utils.tablelength(T) local count = 0 for _ in pairs(T) do count = count + 1 end return count end --[[ Une classe destinée à servir d'ensembl...). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

 Documentation[créer] [purger]
local utils = {}

function utils.tablelength(T)
  local count = 0
  for _ in pairs(T) do count = count + 1 end
  return count
end


--[[

Une classe destinée à servir d'ensemble pour tester rapidement l'appartenance d'un élément à une liste ou un ensemble
--]]

local Set = {} -- the table representing the class, which will double as the metatable for the instances
Set.__index = PropClass -- failed table lookups on the instances should fallback to the class table, to get methods

function Set:new(init, o)
    o = {} 
    setmetatable(o, PropClass)
    
    o.value = init
    o.prop_set = {}
    
    for _, val in pairs(init) do
    	o.prop_set[val] = true
    end

    return o
end

function Set:is_in(key)
    return self.prop_set[key] ~= nil
end

utils.Set = Set

--[[
	Programmation fonctionnelle, application d'une fonction sur chaque élément d'un tableau
	map(f,{a, b, c, ...}) = {f(a), f(b), f(c), ...} 
--]]


function utils.map(func, array)
  local new_array = {}
  for i,v in ipairs(array) do
    new_array[i] = func(v)
  end
  return new_array
end

return utils