Wikiup:Lua/Modul/Expr/de

aus Wikipedia, der freien Enzyklopädie
< Wikiup:Lua‎ | Modul‎ | Expr
Vorlagenprogrammierung Diskussionen Lua Test Unterseiten
Modul Deutsch English

Modul: Dokumentation

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

Die Funktionsergebnisse sind dafür vorgesehen, als Terme innerhalb anderer Berechnungen verwendet zu werden. Sie haben deshalb keine Möglichkeit, Fehlersituationen über Meldungen oder Wartungskategorien zu kommunizieren.

Funktionen für Vorlagen

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

average
Durchschnitt berechnen
  • 1 – Erste Zahl
  • 2 – Zweite Zahl
  • parse(optional) Zahlenformat der Eingaben
  • 3(optional) Weitere Zahl
  • 4 usw. – (optional) Weitere Zahlen, beliebig viele
Der Durchschnitt ist immer mindestens 0 und ungültige Werte werden ignoriert.
base62
Kodierung und Dekodierung gemäß Base62.
  • 1 – zu verarbeitender Wert
  • 2(optional) D2B für Dezimal-in-Base62; Vorgabe: Base62-in-Dezimal
crossTotal
Quersumme berechnen
  • 1 – Positive ganze Zahl, nur Ziffern (Minuszeichen und Nachkommastellen würden ignoriert)
0 wenn ungültig.
decimal2minsec
Koordinatenwert von Dezimaldarstellung in Grad-Minuten-Sekunden umrechnen
  • 1 – Dezimalzahl
  • 2(optional) Anzahl der Nachkommastellen der Sekunden (Vorgabe: keine)
  • parse(optional) Zahlenformat der Dezimalzahl
Ergebnis: Umbruchgeschütztes <span>-Element mit Grad, Minuten, Sekunden, sonst 0
figure
Zahl auf Gültigkeit prüfen und ggf. konvertieren
  • 1 – Zahl
  • parse(optional) Zahlenformat
  • expr(optional) 1 – Berechnungs-Ausdruck zulassen nach den Regeln der Parserfunktion #expr
  • set(optional) Zahlenbereich; Bedingung muss erfüllt sein
    • R(Vorgabe) Reelle Zahl (also beliebig)
    • R+ – Zahl größer oder gleich Null; also nicht-negativ
    • R- – Zahl kleiner oder gleich Null; also nicht-positiv
    • ZGanze Zahl (wertmäßig)
    • NNatürliche Zahl einschließlich Null; also nicht-negativ
    • Z+ – identisch N
    • Z- – Ganze Zahl kleiner oder gleich Null; also nicht-positiv
nichts falls ungültig
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 das übliche Minus-Ersatzzeichen Bindestrich-Minus (U+002D) wie auch das typografische Minuszeichen (U+2212) akzeptiert (siehe unten).
  • 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.
minsec2decimal
Koordinatenwert von Grad-Minuten-Sekunden in Dezimaldarstellung umrechnen
  • 1 – Grad
  • 2(optional) Minuten
  • 3(optional) Sekunden
  • 4(optional) Buchstabe für Himmelsrichtung
  • parse(optional) Zahlenformat der Eingaben
0 wenn ungültig.
modulo
Modulo
  • 1 – Zahlenwert (Dividend)
  • 2 – Ganzwert (Basis, Divisor, Bezugswert) Null unzulässig
  • 3(optional) Zahlenformat der Eingaben
0 wenn ungültig.
percent
Prozentsatz aus Prozentwert und Grundwert berechnen
  • 1 – Anteil
  • 2 – Grundwert (Basis, Bezugswert, 100 %) Null unzulässig
  • 3(optional) Zahl der Nachkommastellen (Vorgabe: keine)
  • 4(optional) schließende Nullen in den Nachkommastellen beibehalten
  • parse(optional) Zahlenformat der Eingaben
  • low(optional) Ergebnis-Format, 1 für „Computer-Format“ (Vorgabe: lokales Wiki).
Das Ergebnis schließt mit einem % ab und der Zahlenwert kann deshalb nicht selbst formatiert werden.
0 wenn ungültig.
Ramanujan
random
(Pseudo-)Zufallszahl (ganzzahlig)
  • 1(optional) Basis, Normierung, Anzahl der Werte (Vorgabe: 100), ganzzahlig >1.
Ergebnisse sind ganzzahlig, beginnend bei einschließlich Null, größter Wert eins weniger als Anzahl.
Jede Einbindung in der Seite liefert ein unabhängiges und deshalb meist unterschiedliches Ergebnis. Bei drei möglichen Werten und vier Einbindungen werden Wiederholungen allerdings unvermeidlich sein.
seed-Werte zur Sicherstellung unterschiedlicher Werte innerhalb der Seite sind nicht erforderlich.
sum
Summe berechnen
  • 1 – Erste Zahl
  • 2 – Zweite Zahl
  • parse(optional) Zahlenformat der Eingaben
  • 3(optional) Weitere Zahl
  • 4 usw. – (optional) Weitere Zahlen, beliebig viele
Die Summe ist immer mindestens 0 und ungültige Werte werden ignoriert.
failsafe
Versionsmanagement

{{Wikipedia:Lua/Modul-Failsafe|Modul=Expr}}

Direkteinbindung in Vorlagen

TemplateAverage
Wie average, jedoch alle Parameter der umgebenden Vorlage verwenden.
TemplateBooland
1, wenn alle Parameter „etwas“ sind, sonst „nichts“.
Parameter der umgebenden Vorlage verwenden.
TemplateBoolor
1, wenn ein Parameter „etwas“ ist, sonst „nichts“.
Parameter der umgebenden Vorlage verwenden.
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.
TemplateSum
Wie sum, jedoch alle Parameter der umgebenden Vorlage verwenden.

Unicode-Minuszeichen

In den Eingabewerten kann sowohl das ASCII-Zeichen - auf der Tastatur (U+002D) als auch das typografische Minuszeichen − (U+2212) verwendet werden. Mit dem Minuszeichen wird wie folgt verfahren:

  • 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-Minuszeichen ist zwangsläufig immer eine Zeichenkette.

Zahlenformat der Eingabe

{{#lst:Modul:Expr/Doku|parseSpec}}

Beispiele (Testseite)

Eine Testseite illustriert praktische Beispiele.

Funktionen für Lua-Module

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

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

Danach steht zur Verfügung:

Expr.average( array, ask )
  • array – sequence table, mit string oder number
  • askZahlenformat der Eingaben
Ergebnis: number, mindestens 0
Expr.base62( adjust )
  • adjuststring oder number
    • number – kodiere in base62 (string)
    • string – dekodiere in number
Expr.crossTotal( amount )
  • amountstring oder number
Ergebnis: number, mit Quersumme des positiven ganzzahligen Teils, mindestens 0
Expr.decimal2minsec( amount, align, ask )
  • amount – Dezimalzahl, string oder number
  • align – Anzahl der Nachkommastellen der Sekunden, string oder number (Vorgabe: 0)
  • askZahlenformat der Dezimalzahl
Ergebnis: mw.html-Objekt im Erfolgsfall, string 0 sonst
Expr.figure( amount, ask, advance, area )
  • amount – Zahl, string oder number
  • askZahlenformat
  • advance – true: Ausdrücke
  • area – Zahlenbereich
Ergebnis: number, oder false wenn ungültig
Expr.minsec2decimal( aDeg, aMin, aSec, alter, ask )
  • aDeg – Gradzahl, string oder number
  • aMin – Minutenzahl, string oder number oder nichts
  • aSec – Sekundenzahl, string oder number oder nichts
  • alter – Buchstabe für Himmelsrichtung, oder nichts
  • askZahlenformat der Eingaben
Ergebnis: number, 0 wenn ungültig
Expr.modulo( amount, adjust, ask )
  • amount – Zahl, string oder number
  • adjust – Basis, string oder number
  • askZahlenformat der Eingaben
Ergebnis: number, 0 wenn ungültig
Expr.percent( amount, all, align, after, ask, allow, frame )
  • amount – Anteil, string oder number
  • all – Basis (Bezugswert), string oder number
  • align – Zahl der Nachkommastellen, string oder number (Vorgabe: keine)
  • aftertrue, um schließende Nullen in den Nachkommastellen beizubehalten
  • askZahlenformat der Eingaben
  • allow – Ergebnis-Format, true, für „Computer-Format“ (Vorgabe: lokales Wiki).
  • frame – Objekt, falls zur Hand
Das Ergebnis schließt mit einem % ab und der Zahlenwert kann deshalb nicht selbst formatiert werden.
number 0 wenn ungültig
Expr.sum( array, ask )
  • array – sequence table, mit string oder number
  • askZahlenformat der Eingaben
Zwei Ergebnisse:
  1. number, mit Summe, mindestens 0
  2. number, mit Anzahl gültiger Summanden, mindestens 0
Expr.failsafe( atleast )
(wie oben)

Als Rückgabewerte kommen number, Zeichenketten oder false in Frage.

Verwendung

Allgemeine Bibliothek; nicht eingegrenzt.

Abhängigkeiten

Keine.

Anmerkungen

  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

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

digitAt
Ziffer aus einer Ganzzahl extrahieren
Vorlage:Ziffer
digitsAt
Ziffern aus einer Ganzzahl extrahieren
Vorlage:Ziffern
IstZahl
Vorlage:IstZahl
isInList
Ist es in der Liste?
Vorlage:In Liste