Aller au contenu

Module:Iteratif

Une page de Wikiversité, la communauté pédagogique libre.

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 = {}

local fouillis = {["Nourriture"] = "Fromage", ["Boisson"] = "Limonade", ["Bestiole"] = "Cafard", ["Couvert"] = "Fourchette", ["Truc"] = "Machin chose"}

function p.test()
	local f,t,n = pairs(fouillis)
	local reponse = ""
	reponse = reponse.."<br/>La première valeur est de type "..type(f).." et la clé suivant la clé couvert est la clé "..f(fouillis,"Couvert")
	reponse = reponse.."<br/>La seconde valeur est de type "..type(t).." et t[Boisson] = "..t["Boisson"]
	reponse = reponse.."<br/>La troisième valeur est de type "..type(n)
	return reponse
end

function p.farfouille()
	local reponse = " "
	for index, objet in next,fouillis,nil do
		reponse = reponse.."<br />à la clé "..index.." se trouve l’objet "..objet.."."
	end
	return reponse
end

local souk = {"flute", "pipo", "manche à balaie", "serpière", "jeu de cartes", "coton tige", "tourne vis", "rateau", "stylo", "poupée"}

function suivant(tab,n)
	if n == nil then n = 0 end
	if tab[n+1] == nil then
		return nil,nil
	else
		return n+1,tab[n+1]
	end
end

function p.description()
	local reponse = " "
	for index, objet in suivant,souk,nil do
		reponse = reponse.."<br />à la clé numéro "..index.." se trouve l’objet "..objet.."."
	end
	return reponse
end

return p