Wikipedia:Lua/Modul/Expr/de

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Vorlagenprogrammierung Diskussionen Lua Test Unterseiten
Modul Deutsch English

Expr – Modul mit Funktionen für Ausdrücke in Ergänzung zu den von der Parser-Funktion #expr gebotenen Möglichkeiten.

Funktionen für Vorlagen[Quelltext bearbeiten]

Die Standard-Funktionen richten sich an #invoke und dessen Parameter. Whitespace (etwa Leerzeichen oder Zeilenumbrüche) vor und nach den Werten wird ignoriert.

max
Maximum einer Menge von Zahlen ermitteln.
Alle unbenannten Parameter werden zur Berechnung herangezogen.
  • Parameterwerte können leer sein oder Ausdrücke enthalten, die sich mit #expr auswerten lassen.
  • Es wird sowohl ASCII-Minus U+002D als auch U+2212 − akzeptiert.
  • Optionen sind in benannten Parametern möglich:
    • minus – Minuszeichen im Ergebnis; siehe unten
    • zeroBlank=1 – Null als leeren Wert darstellen[1]
Der Rückgabewert ist eine leere Zeichenkette („nichts“), wenn kein Parameterwert oder nur leere Werte angegeben wurden; auch eine Fehlermeldung für ungültige #expr kann auftreten. Ansonsten die ermittelte Zahl in der spezifizierten Darstellung.
min
Minimum ermitteln; ansonsten genau analog max.

Direkteinbindung in Vorlagen[Quelltext bearbeiten]

TemplateMax
Wie max, jedoch speziell für Vorlage:Max – alle Parameter der umgebenden Vorlage verwenden.
TemplateMin
Wie min, jedoch speziell für Vorlage:Min – alle Parameter der umgebenden Vorlage verwenden.

Unicode-Minus[Quelltext bearbeiten]

Mit dem Minuszeichen wird wie folgt verfahren:

  • In den Eingabewerten kann es alternativ verwendet werden.
  • Enthält einer der Eingabewerte ein Unicode-Minus U+2212, wird dies auch im Ergebnis benutzt.
  • Option minus=1
    Ergebnis immer mit Unicode-Minus darstellen[2]
  • Option minus=-
    Ergebnis immer mit ASCII-Bindestrich-Minus darstellen

Ein Ergebnis mit Unicode-Minus ist zwangsläufig immer eine Zeichenkette.

Beispiele (Testseite)[Quelltext bearbeiten]

Eine Testseite illustriert praktische Beispiele.

Funktionen für Lua-Module[Quelltext bearbeiten]

Alle oben dokumentierten Funktionen können auch über require() in andere Module eingebunden werden:

local lucky, Expr = pcall( require, "Modul:Expr" )
if lucky then
    Expr = Expr.Expr
else
    -- Fehlerfall; Expr enthält Fehlermeldung
    return "<span class='error'>" .. Expr .. "</span>"
end

Danach steht zur Verfügung:

Expr( f, a )
f – Zeichenkette mit dem Funktionsnamen, wie oben
atable mit den Parameterzuweisungen
  • Werte müssen nicht Zeichenketten sein, sondern können auch Zahlenwerte als number enthalten.
  • Als Rückgabewerte kommen number, Zeichenketten oder false in Frage.

Allgemeine Bibliothek; nicht eingegrenzt.

Abhängigkeiten[Quelltext bearbeiten]

Keine.

  1. Der einzig zugesicherte Wert ist 1 für „ja, wahr“. Jede Angabe des Parameters hat zwar die gleiche Wirkung, ist aber unerwünscht.
  2. Der einzig zugesicherte Wert ist 1 für „Unicode-Minus“. Jede Angabe des Parameters außer mit dem Wert - hat zwar die gleiche Wirkung, ist aber unerwünscht.

Implementierung in Vorbereitung[Quelltext bearbeiten]

Die nachstehenden Funktionen sind teilweise bereits implementiert, jedoch noch nicht ausgetestet und nicht freigegeben.

average
Durchschnitt
crossTotal
Quersumme
Vorlage:Quersumme
decimal2minsec
Dezimalgrad in Grad, Minuten und Sekunden umrechnen
Vorlage:Grad
digitAt
Ziffer aus einer Ganzzahl extrahieren
Vorlage:Ziffer
digitsAt
Ziffern aus einer Ganzzahl extrahieren
Vorlage:Ziffern
isNumber
Ist es eine Zahl?
Vorlage:IstZahl
isInList
Ist es in der Liste?
Vorlage:In Liste
minsec2decimal
Dezimalgrad aus Grad, Minuten und Sekunden berechnen
Vorlage:Dezimalgrad
modulo
Modulo
Vorlage:Modulo
percent
Prozentsatz aus Prozentwert und Grundwert berechnen
Vorlage:%
random
Zufallszahl
Vorlage:Zufallszahl
roundSignificant
Runden auf signifikante Stellen
Vorlage:Siground / Vorlage:Siground/Berechnung / Vorlage:Siground/Format