====== Funktionsglossar — alle std-Funktionen alphabetisch ====== Jede öffentliche Funktion der Standardbibliothek, nach Namen sortiert, mit Signatur und der Unit, in der sie steht. **7128 Funktionen aus 433 Units** — der Bestand von ''std'', ohne Umweg über die Unit-Seiten. Wofür das gut ist: Man hat einen Funktionsnamen aus fremdem Code, einer Fehlermeldung oder einem Beispiel und will wissen, wo er herkommt und wie er aufgerufen wird. Die Unit-Seiten beantworten die umgekehrte Frage — was kann diese Unit — und stehen dahinter verlinkt. → [[lyx_-_programmiersprache:units|Unit-Verzeichnis]] · [[lyx_-_programmiersprache:sprache:syntax|Sprachsyntax]] · [[lyx_-_programmiersprache:units:glossar:a|Glossar von vorn]] ---- ===== Nach Anfangsbuchstaben ===== ^ Buchstabe ^ Funktionen ^ | [[lyx_-_programmiersprache:units:glossar:sonstige|Sonstige]] | 43 | | [[lyx_-_programmiersprache:units:glossar:a|A]] | 632 | | [[lyx_-_programmiersprache:units:glossar:b|B]] | 283 | | [[lyx_-_programmiersprache:units:glossar:c|C]] | 335 | | [[lyx_-_programmiersprache:units:glossar:d|D]] | 416 | | [[lyx_-_programmiersprache:units:glossar:e|E]] | 378 | | [[lyx_-_programmiersprache:units:glossar:f|F]] | 223 | | [[lyx_-_programmiersprache:units:glossar:g|G]] | 466 | | [[lyx_-_programmiersprache:units:glossar:h|H]] | 160 | | [[lyx_-_programmiersprache:units:glossar:i|I]] | 276 | | [[lyx_-_programmiersprache:units:glossar:j|J]] | 22 | | [[lyx_-_programmiersprache:units:glossar:k|K]] | 86 | | [[lyx_-_programmiersprache:units:glossar:l|L]] | 223 | | [[lyx_-_programmiersprache:units:glossar:m|M]] | 361 | | [[lyx_-_programmiersprache:units:glossar:n|N]] | 99 | | [[lyx_-_programmiersprache:units:glossar:o|O]] | 43 | | [[lyx_-_programmiersprache:units:glossar:p|P]] | 804 | | [[lyx_-_programmiersprache:units:glossar:q|Q]] | 300 | | [[lyx_-_programmiersprache:units:glossar:r|R]] | 322 | | [[lyx_-_programmiersprache:units:glossar:s|S]] | 822 | | [[lyx_-_programmiersprache:units:glossar:t|T]] | 230 | | [[lyx_-_programmiersprache:units:glossar:u|U]] | 204 | | [[lyx_-_programmiersprache:units:glossar:v|V]] | 219 | | [[lyx_-_programmiersprache:units:glossar:w|W]] | 93 | | [[lyx_-_programmiersprache:units:glossar:x|X]] | 25 | | [[lyx_-_programmiersprache:units:glossar:y|Y]] | 2 | | [[lyx_-_programmiersprache:units:glossar:z|Z]] | 79 | [[lyx_-_programmiersprache:units:glossar:sonstige|#]] · [[lyx_-_programmiersprache:units:glossar:a|A]] · [[lyx_-_programmiersprache:units:glossar:b|B]] · [[lyx_-_programmiersprache:units:glossar:c|C]] · [[lyx_-_programmiersprache:units:glossar:d|D]] · [[lyx_-_programmiersprache:units:glossar:e|E]] · [[lyx_-_programmiersprache:units:glossar:f|F]] · [[lyx_-_programmiersprache:units:glossar:g|G]] · [[lyx_-_programmiersprache:units:glossar:h|H]] · [[lyx_-_programmiersprache:units:glossar:i|I]] · [[lyx_-_programmiersprache:units:glossar:j|J]] · [[lyx_-_programmiersprache:units:glossar:k|K]] · [[lyx_-_programmiersprache:units:glossar:l|L]] · [[lyx_-_programmiersprache:units:glossar:m|M]] · [[lyx_-_programmiersprache:units:glossar:n|N]] · [[lyx_-_programmiersprache:units:glossar:o|O]] · [[lyx_-_programmiersprache:units:glossar:p|P]] · [[lyx_-_programmiersprache:units:glossar:q|Q]] · [[lyx_-_programmiersprache:units:glossar:r|R]] · [[lyx_-_programmiersprache:units:glossar:s|S]] · [[lyx_-_programmiersprache:units:glossar:t|T]] · [[lyx_-_programmiersprache:units:glossar:u|U]] · [[lyx_-_programmiersprache:units:glossar:v|V]] · [[lyx_-_programmiersprache:units:glossar:w|W]] · [[lyx_-_programmiersprache:units:glossar:x|X]] · [[lyx_-_programmiersprache:units:glossar:y|Y]] · [[lyx_-_programmiersprache:units:glossar:z|Z]] ---- ===== Builtins — die Namen, die hier nicht stehen ===== Ein Teil der meistbenutzten Namen taucht im Glossar **nicht** auf, weil sie keine Unit-Funktionen sind, sondern **Builtins**: der Übersetzer erzeugt den Code direkt, es gibt keinen ''pub fn'' dazu und keinen Import. Wer ''PrintLn'' im Glossar sucht, findet nichts — deshalb steht die Liste hier: * ''EPrint'' * ''EPrintLn'' * ''EPrintStr'' * ''EPrintStrLn'' * ''Exit'' * ''fCeil'' * ''fFloor'' * ''FileReadAll'' * ''fRound'' * ''GetArg'' * ''GetArgC'' * ''GetArgV'' * ''GetEnvBlock'' * ''IntToStr'' * ''panic'' * ''Printf'' * ''PrintFloat'' * ''PrintInt'' * ''PrintLn'' * ''PrintStr'' * ''Random'' * ''RandomSeed'' * ''StrConcat'' * ''StrCopy'' * ''StrEq'' * ''StrEquals'' * ''StrFromInt'' * ''StrLen'' * ''StrLength'' * ''StrStartsWith'' * ''StrSub'' Die vollständige Belegung führt der Compiler in ''src/backend/_builtin_ids.md''; die Liste oben ist der Teil, den man beim Programmieren tatsächlich schreibt. Nicht aufgeführt sind die ''sys_*''-Builtins (direkte Syscall-Abbildungen, vor allem für [[lyxos:start|LyxOS]]) und die Speicherbarrieren. > **Fünf Namen gibt es doppelt** — als Builtin **und** als Unit-Funktion: ''Print'' und ''FloatToStr'' (auch in ''std.io''), ''StrFind'' und ''StrTrim'' (auch in ''std.string''), ''FileSize'' (auch in ''std.fs'' und ''std.fs_ext''). Ohne Import greift das Builtin; mit Import entscheidet der Übersetzer zugunsten der Unit-Funktion. Bei diesen fünf lohnt der Blick auf die Unit-Seite, weil die Signaturen nicht zwingend gleich sind. > > Genau diese Doppelung hat außerdem eine Lücke in der Stelligkeitsprüfung: ein Name, den es als Builtin **und** als ''pub fn'' gibt, entkommt beiden Prüfungen — ''%%PrintLn("a", "b")%%'' wird übersetzt, obwohl ''PrintLn'' ein Argument nimmt ([[https://github.com/SEOLizer/LyX-Compiler/issues/2012|#2012]], offen). ===== Was in diesem Glossar steht — und was nicht ===== * Aufgenommen ist, was mit ''pub fn'' aus einer Unit herausgeführt wird. Alles Interne fehlt, und das mit Absicht: was nicht ''pub'' ist, darf sich ändern. * Die Signatur steht so da, wie sie im Quelltext steht. Bei mehrzeiligen Signaturen sind die Zeilen zusammengezogen. * Ein Name kann **mehrfach** vorkommen. ''SqrtF64'' etwa steht in ''std.math'' und noch einmal in ''std.ml''; ''IsValid'' gibt es in vier Units. Beim Import entscheidet, welche Unit eingebunden ist. * Die Unit-Spalte verweist auf die Doku-Seite der Unit, sofern es eine gibt. Für die Untermodule von ''std.cloud.digitalocean'' und die Unicode-Datentabellen führt der Verweis auf keine eigene Seite — die stehen als reiner Text da. * Beschreibungen stehen bewusst nicht hier, sondern auf den Unit-Seiten. Ein Glossar mit 7146 Kurztexten wäre weder pflegbar noch lesbar; die Seite beantwortet die Frage //wo//, nicht die Frage //wie//. > **Erzeugt aus dem Quelltext, nicht von Hand gepflegt.** Grundlage ist der Bestand aller ''pub fn'' in ''std''. Fehlt eine Funktion hier, fehlt sie auch dort — oder sie ist nicht öffentlich. > > Die Buchstabenseiten entstehen aus ''glossar-bauen.py'' im Doku-Projekt. **Kommen neue Funktionen oder Units hinzu, wird das Glossar im selben Arbeitsgang mitgezogen** — ein Glossar, das dem Bestand hinterherhinkt, ist schlechter als keines, weil es Vollständigkeit behauptet.