This module provides German functions and operators for Raku, but cannot modify the fundamental language syntax due to current Raku limitations (issue #2404).
- Over 200 functions translated to German
- All math, string, list, I/O, file, date/time functions
- Examples:
sagen "Hallo!"; # say "Hello!" my $summe = summe([1,2,3,4,5]); # sum([1,2,3,4,5]) my $text = großbuchstaben("hallo"); # uc("hello")
- Arithmetic:
plus,minus,mal,geteilt,mod,hoch - Comparison:
gleich,ungleich,größer,kleiner,größer_gleich,kleiner_gleich - Logical:
und,oder,nicht - String:
verknüpfen,wiederholen_text - Range:
bis_,vor - Assignment:
plus_gleich,minus_gleich,mal_gleich,geteilt_gleich
Important Note: Operators require parentheses for precedence:
# Correct
my $ergebnis = (5 plus 3 mal 2); # (5+3)*2 = 16
my $ergebnis = (5 plus (3 mal 2)); # 5+(3*2) = 11
# In conditions
if ($alter größer_gleich 18) { ... }wahr # True
falsch # False
nichts # Nil
unendlich # Inf
keine_zahl # NaN
pi # 3.14159...
eulersche_zahl # 2.71828...Cannot translate control structures:
# Does NOT work:
wenn ($x > 5) { ... } # if
während ($x < 10) { ... } # while
für @liste { ... } # for
# Must use original:
if ($x > 5) { ... }
while ($x < 10) { ... }
for @liste { ... }# Does NOT work:
mein $variable = 5; # my
unser $gemeinsam = 10; # our
# Must use:
my $variable = 5;
our $gemeinsam = 10;# Does NOT work:
klasse MeineKlasse { ... } # class
methode foo() { ... } # method
# Must use:
class MeineKlasse { ... }
method foo() { ... }Rakudo (Raku's implementation) has issue #2404 preventing modules from fully modifying the language grammar. Slangs currently cannot:
- Change reserved keywords
- Modify declaration syntax
- Alter core control structures
However, they CAN:
- Define new functions
- Create custom operators
- Export symbols to namespace
Use provided functions with blocks:
# Instead of if/while syntax
wenn($x > 5, { sagen "Größer" }, { sagen "Kleiner oder gleich" });
während({ $x < 10 }, {
sagen $x;
$x++;
});
für([1,2,3,4,5], -> $n {
sagen "Nummer: $n";
});Use German comments:
# Wenn der Benutzer volljährig ist
if ($alter größer_gleich 18) {
sagen "Kann wählen";
}
# Für jeden Schüler in der Liste
for @schüler -> $schüler {
sagen "Verarbeite: $schüler";
}Dieses Modul bietet deutsche Funktionen und Operatoren für Raku, kann aber aufgrund aktueller Raku-Einschränkungen (Problem #2404) die grundlegende Sprachsyntax nicht ändern.
- Über 200 ins Deutsche übersetzte Funktionen
- Alle mathematischen, Zeichenketten-, Listen-, E/A-, Datei- und Datum/Zeit-Funktionen
- Beispiele:
sagen "Hallo!"; # say "Hello!" my $summe = summe([1,2,3,4,5]); # sum([1,2,3,4,5]) my $text = großbuchstaben("hallo"); # uc("hello")
- Arithmetisch:
plus,minus,mal,geteilt,mod,hoch - Vergleich:
gleich,ungleich,größer,kleiner,größer_gleich,kleiner_gleich - Logisch:
und,oder,nicht - Zeichenkette:
verknüpfen,wiederholen_text - Bereich:
bis_,vor - Zuweisung:
plus_gleich,minus_gleich,mal_gleich,geteilt_gleich
Wichtiger Hinweis: Operatoren benötigen Klammern für die Vorrangigkeit:
# Richtig
my $ergebnis = (5 plus 3 mal 2); # (5+3)*2 = 16
my $ergebnis = (5 plus (3 mal 2)); # 5+(3*2) = 11
# In Bedingungen
if ($alter größer_gleich 18) { ... }wahr # True
falsch # False
nichts # Nil
unendlich # Inf
keine_zahl # NaN
pi # 3.14159...
eulersche_zahl # 2.71828...Kontrollstrukturen können nicht übersetzt werden:
# Funktioniert NICHT:
wenn ($x > 5) { ... } # if
während ($x < 10) { ... } # while
für @liste { ... } # for
# Muss das Original verwenden:
if ($x > 5) { ... }
while ($x < 10) { ... }
for @liste { ... }# Funktioniert NICHT:
mein $variable = 5; # my
unser $gemeinsam = 10; # our
# Muss verwenden:
my $variable = 5;
our $gemeinsam = 10;# Funktioniert NICHT:
klasse MeineKlasse { ... } # class
methode foo() { ... } # method
# Muss verwenden:
class MeineKlasse { ... }
method foo() { ... }Rakudo (die Raku-Implementierung) hat das Problem #2404, das Module daran hindert, die Sprachgrammatik vollständig zu ändern. Slangs können derzeit nicht:
- Reservierte Schlüsselwörter ändern
- Deklarationssyntax modifizieren
- Kern-Kontrollstrukturen verändern
Sie KÖNNEN jedoch:
- Neue Funktionen definieren
- Benutzerdefinierte Operatoren erstellen
- Symbole in den Namespace exportieren
Verwenden Sie die bereitgestellten Funktionen mit Blöcken:
# Anstelle der if/while-Syntax
wenn($x > 5, { sagen "Größer" }, { sagen "Kleiner oder gleich" });
während({ $x < 10 }, {
sagen $x;
$x++;
});
für([1,2,3,4,5], -> $n {
sagen "Nummer: $n";
});Verwenden Sie deutsche Kommentare:
# Wenn der Benutzer volljährig ist
if ($alter größer_gleich 18) {
sagen "Kann wählen";
}
# Für jeden Schüler in der Liste
for @schüler -> $schüler {
sagen "Verarbeite: $schüler";
}Wenn das Rakudo-Problem #2404 gelöst wird, wird es möglich sein:
- Alle Schlüsselwörter zu übersetzen
- Eine vollständig deutsche Syntax zu erstellen
- Die Sprachgrammatik zu modifizieren
Derzeit bietet dieses Modul die maximal mögliche Funktionalität innerhalb der aktuellen Einschränkungen.
Für Bildungs- oder Lernprojekte ist dieses Modul hervorragend geeignet für:
- Programmierunterricht für deutschsprachige Lernende
- Demonstration von Konzepten ohne Sprachbarriere
- Erstellung zugänglicherer Beispiele
Für Produktionsprojekte sollten Sie erwägen:
- Deutsche Kommentare mit englischem Code zu verwenden
- Umfassende Dokumentation auf Deutsch
- Hilfsfunktionen mit beschreibenden deutschen Namen zu erstellen