Modul zum Ermitteln eines Numerischen Minimums oder Maximums

Nur Standardparameter. Leere oder nicht-numerische Werte werden ignoriert. Zulässig sind alle mit der Parserfunktion "#expr:" ermittelbaren arithm. Ausdrücke. Gibt es keinen gültigen Wert, wird ein leerer String zurückgegeben.

Sie ist in erster Linie für die Vorlagen Min, Max, Min27 und Max27 gedacht.


  local p = {}
    function p.Min(frame)
      local n = ""
      local m = ""
      for i, v in pairs(frame.args) do
        v = v or ""
        if v ~= "" then   -- leere Parameter (Strings) überspringen
          n = tonumber(frame:callParserFunction{name = '#expr', args = v })  --  #expr zum Parsen eines Ausdrucks.
          if n then              -- nicht-numerische Ausdrücke werden ignoriert
            if m== "" then
              m = n
            else
            m = math.min(m, n)
            end
          end
        end
      end
      return m
    end

    function p.Max(frame)
      local n = ""
      local m = ""
      for i, v in pairs(frame.args) do
        v = v or ""
        if v ~= "" then   -- leere Parameter (Strings) überspringen
          n = tonumber(frame:callParserFunction{name = '#expr', args = v })  --  #expr zum Parsen eines Ausdrucks.
          if n then              -- nicht-numerische Ausdrücke werden ignoriert
            if m== "" then
              m = n
            else
              m = math.max(m, n)
            end
          end
        end
      end
      return m
    end
  return p