Wikipedia:Lua/Modul/Expr
From Wikipedia, the free encyclopedia
Expr – Modul mit Funktionen für Ausdrücke in Ergänzung zu den von der Parser-Funktion #expr gebotenen Möglichkeiten.
| Vorlagenprogrammierung | Diskussionen | Lua | Test | Unterseiten | |||
| Modul | Deutsch | English | Modul: | Dokumentation | |||
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
0und ungültige Werte werden ignoriert. - base62
- Kodierung und Dekodierung gemäß Base62.
- 1 – zu verarbeitender Wert
- 2 – (optional)
D2Bfür Dezimal-in-Base62; Vorgabe: Base62-in-Dezimal
- crossTotal
- Quersumme berechnen
- 1 – Positive ganze Zahl, nur Ziffern (Minuszeichen und Nachkommastellen würden ignoriert)
0wenn 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, sonst0 - 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-negativR-– Zahl kleiner oder gleich Null; also nicht-positivZ– Ganze Zahl (wertmäßig)N– Natürliche Zahl einschließlich Null; also nicht-negativZ+– identischNZ-– 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
#exprauswerten 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:
- Parameterwerte können leer sein oder Ausdrücke enthalten, die sich mit
- Der Rückgabewert ist eine leere Zeichenkette („nichts“), wenn kein Parameterwert oder nur leere Werte angegeben wurden; auch eine Fehlermeldung für ungültige
#exprkann 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
0wenn ungültig.- modulo
- Modulo
- 1 – Zahlenwert (Dividend)
- 2 – Ganzwert (Basis, Divisor, Bezugswert) Null unzulässig
- 3 – (optional) Zahlenformat der Eingaben
0wenn 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,
1für „Computer-Format“ (Vorgabe: lokales Wiki).
- Das Ergebnis schließt mit einem
%ab und der Zahlenwert kann deshalb nicht selbst formatiert werden. 0wenn ungültig.- Ramanujan
- Ellipsenumfang nach der Näherungsformel von Ramanujan
- 1 – Große Halbachse (a) der Ellipse. Nur Zahlen zulässig
- 2 – Exzentrizität (ε) der Ellipse. Wertebereich 0 ≤ ε < 1
- Das Ergebnis ist der nicht gerundete Wert.
-1wenn ungültig.- random
- (Pseudo-)Zufallszahl (ganzzahlig)
- 1 – (optional) Basis, Normierung, Anzahl der Werte (Vorgabe:
100), ganzzahlig >1.
- 1 – (optional) Basis, Normierung, Anzahl der Werte (Vorgabe:
- 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
0und ungültige Werte werden ignoriert. - failsafe
- Versionsmanagement
Die Failsafe-Schnittstelle erlaubt den damit ausgerüsteten Modulen in globaler Verteilung
- sicherzustellen, dass eine von einer Vorlage oder einem Modul benötigte Funktion in der lokalen Kopie eines Bibliotheksmoduls vorhanden ist, und ggf. auch in einer erforderlichen Mindestversion;
- die globale Aktualisierung und Verknüpfung von Modulen über Wikidata zu verwalten.
Die Failsafe-Schnittstelle liegt sowohl auf Ebene der Vorlagen wie auch in direktem Lua-Zugriff vor.
Die Funktionen sind im Einzelnen (nicht alle werden bereits überall in vollem Umfang unterstützt):
| Wert | Ergebnis | aktuell |
|---|---|---|
nichtsfalse |
lokale Version | »2022-09-12« |
| Mindestversion | Mindestversionsbezeichnung Datum im ISO-Format Es wird verglichen, ob das aktuelle Modul diese Version oder später erfüllt.
|
|
wikidata |
Versionsbezeichnung der globalen Mutter (d:Q54991461)
|
»2022-09-12« |
item |
ID des Wikidata-Items
|
»Q54991461« |
~ |
Übereinstimmung der lokalen mit der auf Wikidata registrierten Versionsbezeichnung
|
»« |
@ |
Ist die aktuelle (Modul-)Seite richtig mit Wikidata verknüpft?
|
|
Der Rückgabewert ist in der Vorlagenprogrammierung leer und per Lua false; andernfalls die angegebene Zeichenkette. | ||
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
Ein optionaler Parameter erlaubt unterschiedliche Interpretation eines Eingabewerts.
- Vorgabe ist
.mit der Bedeutung „Computer-Format“. - „Computer-Format“ bedeutet:
.als Dezimaltrennzeichen, Minuszeichen in ASCII, keine Zifferngruppierung („Tausender“). Alternativ kommt die Exponential-Notation mitEin Frage.
Das erlaubte Eingabeformat, falls angegeben, besteht aus ein bis drei Codes mgd mit den Komponenten:
- d – Pflichtangabe wenn verwendet: Dezimaltrennzeichen. Zulässige Werte:
.oder,(nur an letzter Stelle). - m – Minuszeichen ist „typografisch“ (Unicode U+2212) erlaubt bei
-(nur an erster Stelle). - g – Zifferngruppierung („Tausender“, auch Nachkommastellen) erlaubt gemäß nachfolgender Tabelle (optional).
| g | Bedeutung |
|---|---|
, |
Komma, passend zum angloamerikanischen „Computer-Format“. |
. |
Punkt; Standardformatierung in der deutschsprachigen Wikipedia |
' |
ASCII-Hochkomma/Apostroph; üblich mit Bezug zur Schweiz |
', |
ASCII-Hochkomma/Apostroph oder Komma |
'. |
ASCII-Hochkomma/Apostroph oder Punkt |
U+20 |
ASCII-Leerzeichen Nicht als Zahlenformat geeignet, aber zur Analyse und für qualifizierte Fehlermeldungen |
U+A0 |
Geschütztes Leerzeichen |
U+202F |
Schmales geschütztes Leerzeichen |
%s |
Einfaches oder (auch schmales) geschütztes Leerzeichen |
.%s |
Punkt oder einfaches oder (auch schmales) geschütztes Leerzeichen |
'%s |
ASCII-Hochkomma/Apostroph oder einfaches oder (auch schmales) geschütztes Leerzeichen |
'.%s |
Punkt oder ASCII-Hochkomma/Apostroph oder einfaches oder (auch schmales) geschütztes Leerzeichen |
Bei der Eingabe können für die Zifferngruppierung alternativ auch HTML-Entities benutzt werden.
- Wissenschaftliche oder Exponential-Darstellung erfordert immer das „Computer-Format“;
eoderE, Exponent ganzzahlig,+kann der Mantisse und dem Exponent vorangestellt werden.
Beispiele:
-.,– Format für deutschsprachige Wikis, entsprechend lokalem Wert der Parserfunktion formatnum – Komma als Dezimaltrennzeichen, Punkt als Tausendertrennzeichen, typografisches Minuszeichen erlaubt,.– klassisches US-Format-'.%s,– breiteste Akzeptanz deutschsprachiger Formate, typografisches Minuszeichen möglich
Beispiele (Testseite)
Eine Testseite illustriert praktische Beispiele.
Anmerkungen
- Der einzig zugesicherte Wert ist
1für „ja, wahr“. Jede Angabe des Parameters hat zwar die gleiche Wirkung, ist aber unerwünscht. - Der einzig zugesicherte Wert ist
1für „Unicode-Minus“. Jede Angabe des Parameters außer mit dem Wert-hat zwar die gleiche Wirkung, ist aber unerwünscht.
Eine Einbindung erfolgt jeweils im Format
Allgemeine Hinweise zur Einbindung von Modulen
{{#invoke: Expr | Funktionsname | Wert1 | Wert2 | NameX=Wert … }}
Die Parameter können wie bei Vorlagen benannt oder unbenannt sein; deren Regeln gelten analog.
Wenn unbekannte Zeichenketten von außen kommen (als Vorlagenparameter), sollte immer mit der Form 1=Wert gearbeitet werden.
Zu allgemeinen Problemen beachte die Abhilfen wie bei Vorlagen.
Wenn in einer Vorlage ein Modul verwendet wird, sollte auch immer die Vorlage:Dokumentation/Lua in der Dokumentationsseite eingebunden werden.
- Das gibt einem Programmierer Aufschluss, dass ein Lua-Modul benutzt wird, welche/s und ggf. welche Einzelfunktion daraus, und verlinkt auf die Dokumentation.
- Die Modul-Dokumentationen bekommen ein Link, in welchen Vorlagen sie eingesetzt werden, und wo bei eventuellen Funktionsänderungen Anpassungen erforderlich werden.
- Die Vorlage wird zur Übersicht kategorisiert in Kategorie:Vorlage:mit Lua-Programmierung.
Zu weiteren Informationen siehe Hilfe:Lua.
Bei Problemen wende dich bitte an die Vorlagen-Werkstatt, in schweren Fällen hilft auch die Lua-Werkstatt.