37 lines
1.8 KiB
Markdown
37 lines
1.8 KiB
Markdown
# Übungsaufgabe 2: Bob
|
||
## Einführung
|
||
|
||
Bob ist ein träger und fauler Teenager. Er hält sich für sehr cool. Und er zeigt definitiv keine Begeisterung – das wäre uncool.
|
||
|
||
Wenn Leute mit ihm sprechen, sind seine Antworten ziemlich begrenzt.
|
||
|
||
## Anweisungen
|
||
|
||
Deine Aufgabe ist es, zu bestimmen, was Bob jemandem antwortet, wenn man ihn etwas fragt oder ihm etwas sagt.
|
||
|
||
Bob gibt nur eine von fünf möglichen Antworten:
|
||
|
||
- **"Klar."** Das ist seine Antwort, wenn man ihm eine Frage stellt, z. B. „Wie geht es dir?“. Fragen erkennt man daran, dass sie mit einem Fragezeichen enden.
|
||
- **"Whoa, entspann dich!"** Das sagt er, wenn man IHN ANSCHREIT. Schreien erkennt man daran, dass ALLE BUCHSTABEN GROßGESCHRIEBEN SIND.
|
||
- **"Chill mal, ich bin da schon dran!"** So antwortet er, wenn man ihn anschreit und gleichzeitig eine Frage stellt.
|
||
- **"Na gut. Dann eben nicht!"** Das ist seine Reaktion auf Stille. Stille bedeutet, dass nichts gesagt wird oder nur Leerzeichen vorhanden sind.
|
||
- **"Whatever."** Das ist seine Antwort auf alles andere.
|
||
|
||
Du musst die Funktion `responseFor` implementieren, die Bobs Antwort für eine gegebene Eingabe zurückgibt. Falls du unsicher bist, kannst du die bereitgestellte Signatur verwenden, aber lass dich nicht in deiner Kreativität einschränken:
|
||
|
||
```haskell
|
||
responseFor :: String -> String
|
||
```
|
||
|
||
**Hinweis 1:** Zur Lösung dieser Aufgabe können unter anderem die bereits behandelten **Guards** helfen.
|
||
|
||
**Hinweis 2:** Das [Standard-Lib-Package ``Data.Char``](https://hackage.haskell.org/package/base-4.21.0.0/docs/Data-Char.html) kann zur Lösung der Aufgabe hilfreich sein.
|
||
|
||
## Ausführen und Testen
|
||
|
||
Um die Funktion zu testen, kannst du durch die folgenden Commands in diesem Ordner auf der Kommandozeile das Programm compilen und ausführen:
|
||
|
||
``>runhaskell bob.hs`` bzw
|
||
|
||
``>runhaskell exercises/block1/2-bob/bob.hs``
|