Die Diamond-Kata nimmt als Eingabe einen Buchstaben und gibt ihn in Form einer Raute aus. Zu einem Buchstaben gibt sie eine Raute aus, die mit 'A' beginnt und den übergebenen Buchstaben an der breitesten Stelle hat.
In den folgenden Beispielen werden Leerzeichen durch ·-Zeichen dargestellt.
Raute für den Buchstaben 'A':
A
Raute für den Buchstaben 'C':
··A··
·B·B·
C···C
·B·B·
··A··
Raute für den Buchstaben 'E':
····A····
···B·B···
··C···C··
·D·····D·
E·······E
·D·····D·
··C···C··
···B·B···
····A····
Du musst die Funktion diamond implementieren, die einen Diamanten ausgibt, der bei A beginnt und an seinen breitesten Stellen das gegebene Zeichen hat. Du kannst die vorgegebene Signatur verwenden, wenn du dir bei den Typen unsicher bist, aber lass dich dadurch nicht in deiner Kreativität einschränken:
diamond :: Char -> Maybe [String]
Diese Übung arbeitet mit Textdaten. Aus historischen Gründen ist der String-Typ von Haskell synonym mit [Char], einer Liste von Zeichen. Für eine effizientere Verarbeitung von Textdaten kannst du den Text-Typ verwenden.
Als optionale Erweiterung dieser Übung kannst du:
- text zu deiner Liste der Abhängigkeiten in package.yaml hinzufügen.Data.Text auf die folgende Weise importieren:import qualified Data.Text as T
import Data.Text (Text)
diamond :: Char -> Maybe [Text] schreiben und Data.Text-Kombinatoren als z. B. T.pack verwenden,Data.Text nachschlagen,String in Diamond.hs durch Text ersetzen:diamond :: Char -> Maybe [Text]
Dieser Teil ist völlig optional.
Melde dich bei Exercism an, um Haskell mit 107 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.