Vikipedio:Lua/Moduloj/Expr/eo

El Vikipedio, la libera enciklopedio
Ŝablona programado Diskutoj Lua Testoj Subpaĝoj
Modulo Esperanto English

Modulo: Dokumentado

Expr – Modulo kun funkcioj por esprimoj aldone al tiuj de la parsilaj funkcioj #expr ofertataj ebloj.

La funkciorezultoj estas destinitaj por tio, esti uzataj kiel termoj ene de aliaj kalkuloj. Ili tial ne havas eblon komuniki erarojn per mesaĝoj aŭ zorgigaj kategorioj.

Funkcioj por ŝablonoj[redakti fonton]

La normaj funkcioj adresiĝas al #invoke kaj ĝiaj parametroj. Whitespace (do spacoj aŭ linisaltoj) antaŭ kaj post la valoroj estas ignorataj.

average
Kalkuli averaĝon
  • 1 – Unua nombro
  • 2 – Dua nombro
  • parse(nedeviga) Zahlenformat de la enigoj
  • 3(nedeviga) Pli nombro
  • 4 ktp. – (nedeviga) Pliaj nombroj, beliebig viele
La averaĝo estas ĉiam minimume 0 kaj nevalidaj valoroj estas ignorataj.
base62
Kodigo kaj malkodigo laŭ Base62.
  • 1 – prilaborota valoro
  • 2(nedeviga) D2B por dekuma-al-base62; defaŭlto: base62-al-dekuma
crossTotal
Kalkuli krucsumon
  • 1 – Pozitiva entjero, nur ciferoj (minusa signo kaj postkomaj ciferoj estas ignorataj)
0 se nevalida.
decimal2minsec
Konverti koordinatan valoron el decimala prezento al gradoj-minutoj-sekundoj
  • 1 – Dekuma nombro
  • 2(nedeviga) Nombro de la postkomaj ciferoj de la sekundoj (defaŭlto: neniu)
  • parse(nedeviga) Zahlenformat de la dekuma nombro
Rezulto: Protektita je linisalto <span>-elemento kun grado, minutoj, sekundoj, alie 0
figure
Kontrolu nombron je valideco kaj eventuale konverti
  • 1 – Nombro
  • parse(nedeviga) Zahlenformat
  • expr(nedeviga) 1 – Permesu kalkulesprimon laŭ la reguloj de la analiza funkcio #expr
  • set(nedeviga) Nombra gamo; Kondiĉo devas esti plenumita
    • R(defaŭlto) Reala nombro (do ajna)
    • R+ – Nombro pli granda ol aŭ egala al nul; do ne-negativa
    • R- – Nombro pli malgranda aŭ egala al nu; do ne-pozitiva
    • ZEntjero (laŭvalore)
    • NNatura nombro inklude nulo; do ne-negativa
    • Z+ – identa N
    • Z- – Entjero pli malgranda aŭ egala al nul; do ne-pozitiva
nenio se nevalida
max
Determini maksimumon el aro de nombroj.
Ĉiuj nenomitaj parametroj estas uzataj por la kalkulo.
  • Parametraj valoroj povas esti malplenaj aŭ enhavi esprimojn, kiuj estas analizeblaj per #expr.
  • Estas akceptata kaj la kutima minusa anstataŭa signo Bindestrich-Minus (U+002D) kaj la tipografia minus-signo (U+2212) (vidu malsupre).
  • Opcioj eblas en nomitaj parametroj:
    • minus – Minus-signo en rezulto; vidu malsupre
    • zeroBlank=1 – Prezenti nulon kiel malplenan valoron[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

Rekta enplekto en ŝablonoj[redakti fonton]

TemplateAverage
Kiel average, sed uzas ĉiujn parametrojn de la ĉirkaŭanta ŝablono.
TemplateBooland
1, se ĉiuj parametroj estas „io“, alie „nenio“.
Uzu ĉiujn parametrojn de la ĉirkaŭanta ŝablono.
TemplateBoolor
1, se unu parametro estas „io“, alie „nenio“.
Uzu ĉiujn parametrojn de la ĉirkaŭanta ŝablono.
TemplateMax
Kiel max, sed speciale por Ŝablono:Max – uzas ĉiujn parametrojn de ĉirkaŭanta ŝablono.
TemplateMin
Kiel min, sed speciale por Ŝablono:Min – uzas ĉiujn parametrojn de ĉirkaŭanta ŝablono.
TemplateSum
Kiel sum, sed uzas ĉiujn parametrojn de la ĉirkaŭanta ŝablono.

Unicode-Minuszeichen[redakti fonton]

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[redakti fonton]

Modul:Expr/Doku

Beispiele (Testseite)[redakti fonton]

Eine Testseite illustriert praktische Beispiele.

Funkcioj por Lua-moduloj[redakti fonton]

Multaj el la supre dokumentitaj funkcioj ankaŭ povas esti enplektataj per require() en aliajn modulojn:

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

Poste uzeblas:

Expr.average( array, ask )
  • array – sekvenca table, kun stringnumber
  • askZahlenformat de la enigoj
Ergebnis: number, minimume 0
Expr.base62( adjust )
  • adjuststringnumber
    • number – kodigu al base62 (string)
    • string – dekodigu al number
Expr.crossTotal( amount )
  • amountstringnumber
Rezulto: number, kun Quersumme de la pozitiva entjera parto, minimume 0
Expr.decimal2minsec( amount, align, ask )
  • amount – Decimala nombro, stringnumber
  • align – Nombro de la postkomaj ciferoj de la sekundoj, stringnumber (Defaŭlto: 0)
  • askZahlenformat de la decimala nombro
Rezulto: mw.html-objekto en sukcesa kazo, string 0 alie
Expr.figure( amount, ask, advance, area )
  • amount – Zahl, stringnumber
  • askZahlenformat
  • advance – true: esprimoj
  • area – Zahlenbereich
Rezulto: number, aŭ false se nevalida
Expr.minsec2decimal( aDeg, aMin, aSec, alter, ask )
  • aDeg – Grada nomro, stringnumber
  • aMin – Minuta nombro, stringnumber aŭ nenio
  • aSec – Sekunda nombro, stringnumber aŭ nenio
  • alter – Litero por ĉieldirekto, aŭ nenio
  • askZahlenformat de la enigoj
Rezulto: number, 0 se nevalida
Expr.modulo( amount, adjust, ask )
  • amount – Nombro, stringnumber
  • adjust – Bazo, stringnumber
  • askZahlenformat de la enigoj
Rezulto: number, 0 se nevalida
Expr.percent( amount, all, align, after, ask, allow, frame )
  • amount – Parto, stringnumber
  • all – Bazo (Bezugswert), stringnumber
  • align – Nombro de la postkomaj ciferoj, stringnumber (Defaŭlto: neniu)
  • 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[redakti fonton]

Allgemeine Bibliothek; nicht eingegrenzt.

Dependeco[redakti fonton]

Neniu.


Anmerkungen[redakti fonton]

  1. La sola garantiita valoro estas 1 por „jes, vera“. Ĉiu specifo de la parametro havas la saman efikon, sed estas nedezirinda.
  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[redakti fonton]

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