Wie kann ich diese Aufgabe mit Haskell lösen?

1 Antwort

a) Du brauchst nur schauen, ob das Zeichen mit einem der Zeichen übereinstimmt, welche die Ziffern 0-9 darstellen. Für den boolschen Ausdruck benötigst du Operatoren (Vergleichsoperatoren, logische Operatoren).

b) Hierfür reichen mehrere Funktionsdefinitionen, die jeweils ein Zeichen prüfen.

Ich zeige lediglich ein Vergleichsbeispiel:

isElementaryArithmeticOperator :: Char -> Bool
isElementaryArithmeticOperator '+' = True
isElementaryArithmeticOperator '-' = True
isElementaryArithmeticOperator '/' = True
isElementaryArithmeticOperator '*' = True
isElementaryArithmeticOperator _ = False

Der Unterstrich symbolisiert jedes beliebige Zeichen.

c) Das kann man ähnlich wie in b) lösen, mit dem Unterschied, dass nur eine Funktionsdefinition ausreicht und die Syntax ein bisschen anders aussieht.

Ich zeige erneut nur ein Vergleichsbeispiel:

isEven :: Int -> Bool
isEven number | number `mod` 2 == 0 = True
              | otherwise = False

Jeder Case wird mit einem | angeführt. Wenn keiner der Fälle eintrifft, wird der otherwise-case ausgeführt.