(source) C. Scott Ananian: Ideas/Improved for-loops for Lua/example1/fr
locale fonction frame_args_to_table(frame)
  -- frame.args n'est pas un vrai tableau dans Scribunto, donc on en crée un
  locale liste = {}
  locale i = 1
  tant que frame.args[i] ~= nulle faire
    table.insert(liste, frame.args[i])
    i = i + 1
  fin
  renvoyer liste
fin

renvoyer {
  max = fonction(frame, ... )
    locale résultat = nulle;
    pour _, élément de ipairs(frame_args_to_table(frame)) avec premier,dernier faire
      si premier ou élément>résultat alors
        résultat = élément
      fin
    alors
      -- seulement si la boucle est exécutée au moins une fois
      renvoyer résultat
    sinon
      -- si la boucle n'a jamais été exécutée (aucun élément dans la liste)
      error( "liste de longueur nulle" )
    fin
  fin,
  
  estPremier = fonction(frame, ... )
    n=tonumber(frame.args[1] ) ;
    pour x=2,n-1 faire
      si n%x==0 alors arrêter fin
    alors
      renvoyer vrai
    sinon
      error( "n était inférieur à 2" )
    fin
    renvoyer faux
  fin,
  
  chiffresÀChaîner = fonction(frame, ... )
    s = ""
    pour _, d de ipairs(frame_args_to_table(frame)) faire
      s = s .. tostring(d)
    sinon
      -- s'il n'y a pas de chiffres dans la liste de chiffres
      s = "0"
    fin
    renvoyer s
  fin,

}
C. Scott Ananian [[User:cscott]]