Tracks
/
Haskell
Haskell
/
Übungen
/
Regentropfen
Regentropfen

Regentropfen

Einfach

Einführung

Regentropfen ist eine etwas komplexere Version der FizzBuzz-Herausforderung, einer klassischen Interviewfrage.

Anleitung

Deine Aufgabe ist es, eine Zahl in die zugehörigen Regentropfen-Geräusche umzuwandeln.

Wenn eine gegebene Zahl:

  • durch 3 teilbar ist, füge „Pling“ zum Ergebnis hinzu.
  • durch 5 teilbar ist, füge „Plang“ zum Ergebnis hinzu.
  • durch 7 teilbar ist, füge „Plong“ zum Ergebnis hinzu.
  • nicht durch 3, 5 oder 7 teilbar ist, sollte das Ergebnis die Zahl als String sein.

Beispiele

  • 28 ist durch 7 teilbar, aber nicht durch 3 oder 5, das Ergebnis wäre also "Plong".
  • 30 ist durch 3 und 5 teilbar, aber nicht durch 7, das Ergebnis wäre also "PlingPlang".
  • 34 ist nicht durch 3, 5 oder 7 teilbar, das Ergebnis wäre also "34".
Note

Eine häufige Möglichkeit, um zu prüfen, ob eine Zahl ohne Rest durch eine andere teilbar ist, ist, den Rest oder den Modulo mit null zu vergleichen. Die meisten Sprachen bieten dafür Operatoren oder Funktionen für eines von beidem (oder für beides).

Hinweise

Du musst die Funktion convert implementieren, die eine Zahl in einen Regentropfenklang umgewandelt zurückgibt. Wenn du dir bei den Typen unsicher bist, kannst du die vorgegebene Signatur verwenden, aber lass dich davon nicht in deiner Kreativität einschränken:

convert :: Int -> String

Diese Übung arbeitet mit Textdaten. Aus historischen Gründen ist der String-Typ von Haskell gleichbedeutend mit [Char], einer Liste von Zeichen. Für einen effizienteren Umgang mit Textdaten kannst du den Text-Typ verwenden.

Als optionale Erweiterung dieser Übung kannst du

  • dich über String-Typen in Haskell informieren.
  • - 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)
  • jetzt z. B. convert :: Int -> Text schreiben und dich auf Data.Text-Kombinatoren wie z. B. T.pack beziehen.
  • die Dokumentation für Data.Text nachschlagen,
  • dann in Raindrops.hs alle Vorkommen von String durch Text ersetzen:
convert :: Int -> Text

Dieser Teil ist völlig optional.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Haskell Exercism

Bereit, mit Regentropfen zu starten?

Melde dich bei Exercism an, um Haskell mit 107 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.

Tauche tiefer in Regentropfen ein!

Entdecke Lösungen mit funktionalen Pipelines, Matrixmultiplikation, einer vorberechneten tabellenbasierten Lösung mit einem Makro, einem objektorientierten Ansatz, einem beeindruckenden Einsatz von Python und TCL sowie einer Enterprise-Edition.