From 89fddf94b7d7ec742ff9424a607ba175e743e893 Mon Sep 17 00:00:00 2001 From: NotLe0n Date: Sun, 24 Dec 2023 13:13:39 +0100 Subject: [PATCH] added Erste_N_Elemente, Letzten_N_Elemente, Spiegeln (#39) --- lib/stdlib/Duden/Listen.ddp | 111 ++++++++++++++++++++++ tests/testdata/stdlib/Listen/Listen.ddp | 24 +++++ tests/testdata/stdlib/Listen/expected.txt | 18 ++++ 3 files changed, 153 insertions(+) diff --git a/lib/stdlib/Duden/Listen.ddp b/lib/stdlib/Duden/Listen.ddp index afddadc3..364c073f 100644 --- a/lib/stdlib/Duden/Listen.ddp +++ b/lib/stdlib/Duden/Listen.ddp @@ -124,6 +124,28 @@ Die öffentliche Funktion Ist_Leer_Zahl mit dem Parameter liste vom Typ Zahlen L Und kann so benutzt werden: " leer ist" +[ + Gibt liste bis zum n. Element zurück. +] +Die öffentliche Funktion Erste_N_Elemente_Zahl mit den Parametern liste und n vom Typ Zahlen Liste und Zahl, gibt eine Zahlen Liste zurück, macht: + Gib liste bis zum n. Element zurück. +Und kann so benutzt werden: + "die ersten Elemente von " + +[ + Gibt liste ab dem (die Länge von liste minus n). Element zurück. +] +Die öffentliche Funktion Letzten_N_Elemente_Zahl mit den Parametern liste und n vom Typ Zahlen Liste und Zahl, gibt eine Zahlen Liste zurück, macht: + Gib liste ab dem (die Länge von liste minus n plus 1). Element zurück. +Und kann so benutzt werden: + "die letzten Elemente von " + +Die öffentliche Funktion Spiegeln_Zahl mit dem Parameter liste vom Typ Zahlen Liste, gibt eine Zahlen Liste zurück, macht: + Die Zahlen Liste neu ist die Länge von liste Mal 0. + Für jede Zahl i von 1 bis (die Länge von liste), Speichere liste an der Stelle i in neu an der Stelle (die Länge von liste minus i plus 1). + Gib neu zurück. +Und kann so benutzt werden: + " gespiegelt" [ Kommazahlen Listen Funktionen] [ @@ -251,6 +273,28 @@ Die öffentliche Funktion Ist_Leer_Kommazahl mit dem Parameter liste vom Typ Kom Und kann so benutzt werden: " leer ist" +[ + Gibt liste bis zum n. Element zurück. +] +Die öffentliche Funktion Erste_N_Elemente_Kommazahl mit den Parametern liste und n vom Typ Kommazahlen Liste und Zahl, gibt eine Kommazahlen Liste zurück, macht: + Gib liste bis zum n. Element zurück. +Und kann so benutzt werden: + "die ersten Elemente von " + +[ + Gibt liste ab dem (die Länge von liste minus n). Element zurück. +] +Die öffentliche Funktion Letzten_N_Elemente_Kommazahl mit den Parametern liste und n vom Typ Kommazahlen Liste und Zahl, gibt eine Kommazahlen Liste zurück, macht: + Gib liste ab dem (die Länge von liste minus n plus 1). Element zurück. +Und kann so benutzt werden: + "die letzten Elemente von " + +Die öffentliche Funktion Spiegeln_Kommazahl mit dem Parameter liste vom Typ Kommazahlen Liste, gibt eine Kommazahlen Liste zurück, macht: + Die Kommazahlen Liste neu ist die Länge von liste Mal 0,0. + Für jede Zahl i von 1 bis (die Länge von liste), Speichere liste an der Stelle i in neu an der Stelle (die Länge von liste minus i plus 1). + Gib neu zurück. +Und kann so benutzt werden: + " gespiegelt" [ Wahrheitswert Listen Funktionen ] [ @@ -378,6 +422,28 @@ Die öffentliche Funktion Ist_Leer_Wahrheitswert mit dem Parameter liste vom Typ Und kann so benutzt werden: " leer ist" +[ + Gibt liste bis zum n. Element zurück. +] +Die öffentliche Funktion Erste_N_Elemente_Wahrheitswert mit den Parametern liste und n vom Typ Wahrheitswert Liste und Zahl, gibt eine Wahrheitswert Liste zurück, macht: + Gib liste bis zum n. Element zurück. +Und kann so benutzt werden: + "die ersten Elemente von " + +[ + Gibt liste ab dem (die Länge von liste minus n). Element zurück. +] +Die öffentliche Funktion Letzten_N_Elemente_Wahrheitswert mit den Parametern liste und n vom Typ Wahrheitswert Liste und Zahl, gibt eine Wahrheitswert Liste zurück, macht: + Gib liste ab dem (die Länge von liste minus n plus 1). Element zurück. +Und kann so benutzt werden: + "die letzten Elemente von " + +Die öffentliche Funktion Spiegeln_Wahrheitswert mit dem Parameter liste vom Typ Wahrheitswert Liste, gibt eine Wahrheitswert Liste zurück, macht: + Die Wahrheitswert Liste neu ist die Länge von liste Mal falsch. + Für jede Zahl i von 1 bis (die Länge von liste), Speichere liste an der Stelle i in neu an der Stelle (die Länge von liste minus i plus 1). + Gib neu zurück. +Und kann so benutzt werden: + " gespiegelt" [ Buchstaben Listen Funktionen ] [ @@ -505,6 +571,28 @@ Die öffentliche Funktion Ist_Leer_Buchstabe mit dem Parameter liste vom Typ Buc Und kann so benutzt werden: " leer ist" +[ + Gibt liste bis zum n. Element zurück. +] +Die öffentliche Funktion Erste_N_Elemente_Buchstabe mit den Parametern liste und n vom Typ Buchstaben Liste und Zahl, gibt eine Buchstaben Liste zurück, macht: + Gib liste bis zum n. Element zurück. +Und kann so benutzt werden: + "die ersten Elemente von " + +[ + Gibt liste ab dem (die Länge von liste minus n). Element zurück. +] +Die öffentliche Funktion Letzten_N_Elemente_Buchstabe mit den Parametern liste und n vom Typ Buchstaben Liste und Zahl, gibt eine Buchstaben Liste zurück, macht: + Gib liste ab dem (die Länge von liste minus n plus 1). Element zurück. +Und kann so benutzt werden: + "die letzten Elemente von " + +Die öffentliche Funktion Spiegeln_Buchstabe mit dem Parameter liste vom Typ Buchstaben Liste, gibt eine Buchstaben Liste zurück, macht: + Die Buchstaben Liste neu ist die Länge von liste Mal ' '. + Für jede Zahl i von 1 bis (die Länge von liste), Speichere liste an der Stelle i in neu an der Stelle (die Länge von liste minus i plus 1). + Gib neu zurück. +Und kann so benutzt werden: + " gespiegelt" [ Text Listen Funktionen ] [ @@ -632,6 +720,29 @@ Die öffentliche Funktion Ist_Leer_Text mit dem Parameter liste vom Typ Text Lis Und kann so benutzt werden: " leer ist" +[ + Gibt liste bis zum n. Element zurück. +] +Die öffentliche Funktion Erste_N_Elemente_Text mit den Parametern liste und n vom Typ Text Liste und Zahl, gibt eine Text Liste zurück, macht: + Gib liste bis zum n. Element zurück. +Und kann so benutzt werden: + "die ersten Elemente von " + +[ + Gibt liste ab dem (die Länge von liste minus n). Element zurück. +] +Die öffentliche Funktion Letzten_N_Elemente_Text mit den Parametern liste und n vom Typ Text Liste und Zahl, gibt eine Text Liste zurück, macht: + Gib liste ab dem (die Länge von liste minus n plus 1). Element zurück. +Und kann so benutzt werden: + "die letzten Elemente von " + +Die öffentliche Funktion Spiegeln_Text mit dem Parameter liste vom Typ Text Liste, gibt eine Text Liste zurück, macht: + Die Text Liste neu ist die Länge von liste Mal "". + Für jede Zahl i von 1 bis (die Länge von liste), Speichere liste an der Stelle i in neu an der Stelle (die Länge von liste minus i plus 1). + Gib neu zurück. +Und kann so benutzt werden: + " gespiegelt" + [ Verkettet alle Buchstaben der gegebenen Liste zu einem Text und gibt diesen zurück. ] diff --git a/tests/testdata/stdlib/Listen/Listen.ddp b/tests/testdata/stdlib/Listen/Listen.ddp index d9021ee5..0f21f6af 100644 --- a/tests/testdata/stdlib/Listen/Listen.ddp +++ b/tests/testdata/stdlib/Listen/Listen.ddp @@ -134,6 +134,30 @@ Schreibe '\n'. Schreibe listT. Schreibe '\n'. +[Erste_N_Elemente tests] +Schreibe den Text "-- Erste_N_Elemente tests --" auf eine Zeile. +Schreibe (die ersten 3 Elemente von listZ) auf eine Zeile. +Schreibe (die ersten 3 Elemente von listK) auf eine Zeile. +Schreibe (die ersten 3 Elemente von listB) auf eine Zeile. +Schreibe (die ersten 3 Elemente von listC) auf eine Zeile. +Schreibe (die ersten 3 Elemente von listT) auf eine Zeile. + +[Letzten_N_Elemente tests] +Schreibe den Text "-- Letzten_N_Elemente tests --" auf eine Zeile. +Schreibe (die letzten 3 Elemente von listZ) auf eine Zeile. +Schreibe (die letzten 3 Elemente von listK) auf eine Zeile. +Schreibe (die letzten 3 Elemente von listB) auf eine Zeile. +Schreibe (die letzten 3 Elemente von listC) auf eine Zeile. +Schreibe (die letzten 3 Elemente von listT) auf eine Zeile. + +[Spiegeln tests] +Schreibe den Text "-- Spiegeln tests --" auf eine Zeile. +Schreibe (listZ gespiegelt) auf eine Zeile. +Schreibe (listK gespiegelt) auf eine Zeile. +Schreibe (listB gespiegelt) auf eine Zeile. +Schreibe (listC gespiegelt) auf eine Zeile. +Schreibe (listT gespiegelt) auf eine Zeile. + Schreibe den Text "-- fill tests --" auf eine Zeile. [ fill tests ] Fülle listZ mit 0. diff --git a/tests/testdata/stdlib/Listen/expected.txt b/tests/testdata/stdlib/Listen/expected.txt index de4d5e8c..31de3a7e 100644 --- a/tests/testdata/stdlib/Listen/expected.txt +++ b/tests/testdata/stdlib/Listen/expected.txt @@ -47,6 +47,24 @@ hi, yo, test, neu wahr, wahr, falsch, wahr, falsch 8, a, b, c, d 8, hi, yo, test, neu +-- Erste_N_Elemente tests -- +8, 1, 4 +8,5, 3,14, 0,183 +wahr, wahr, falsch +8, a, b +8, hi, yo +-- Letzten_N_Elemente tests -- +4, 5, 9 +0,183, 2,5, 5,5 +falsch, wahr, falsch +b, c, d +yo, test, neu +-- Spiegeln tests -- +9, 5, 4, 1, 8 +5,5, 2,5, 0,183, 3,14, 8,5 +falsch, wahr, falsch, wahr, wahr +d, c, b, a, 8 +neu, test, yo, hi, 8 -- fill tests -- 0, 0, 0, 0, 0 0, 0, 0, 0, 0