Bob

Bob

Einfach

Einführung

Bob ist ein gleichgültiger Teenager. Er hält sich für sehr cool. Und er begeistert sich ganz sicher nicht für irgendetwas. Das wäre nicht cool.

Wenn Leute mit ihm reden, sind seine Antworten ziemlich begrenzt.

Anleitung

Deine Aufgabe ist es, herauszufinden, was Bob antwortet, wenn ihm jemand etwas sagt oder ihm eine Frage stellt.

Bob antwortet immer nur auf eine von fünf Arten:

  • „Sure.“ So antwortet er, wenn du ihm eine Frage stellst, zum Beispiel „How are you?“ Die Konvention für Fragen ist, dass sie mit einem Fragezeichen enden.
  • „Whoa, chill out!“ So antwortet er, wenn du ihn anschreist. Die Konvention für Schreien ist, alles in Großbuchstaben zu schreiben.
  • „Calm down, I know what I'm doing!“ Das sagt er, wenn du ihm eine Frage entgegenschreist.
  • „Fine. Be that way!“ So reagiert er auf Stille. Die Konvention für Stille ist nichts oder verschiedene Kombinationen von Whitespace-Zeichen.
  • „Whatever.“ Das antwortet er auf alles andere.

Hinweise

Du musst die Funktion responseFor implementieren, die Bobs Antwort für eine gegebene Eingabe 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:

responseFor :: String -> String

Um diese Übung zu lösen, kannst du dich über Folgendes informieren:

Diese Übung arbeitet mit Textdaten. Aus historischen Gründen ist der Typ String in Haskell gleichbedeutend mit [Char], einer Liste von Zeichen. Für eine effizientere Verarbeitung von Textdaten kann der Typ Text verwendet werden.

Als optionale Erweiterung dieser Übung kannst du

  • etwas über String-Typen in Haskell lesen.

  • - text zu deiner Liste der Abhängigkeiten in package.yaml hinzufügen.

  • Data.Text wie folgt importieren:

    import qualified Data.Text as T
    import           Data.Text (Text)
    
  • Jetzt kannst du z. B. responseFor :: Text -> Text schreiben und Data.Text-Kombinatoren wie z. B. T.isSuffixOf verwenden.

  • die Dokumentation für Data.Text nachschlagen.

  • Anschließend kannst du in Bob.hs alle Vorkommen von String durch Text ersetzen:

    responseFor :: Text -> Text
    

Dieser Teil ist völlig optional.

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

Bereit, mit Bob zu starten?

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