www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

Daten merken
Auto-Login
Registrieren
 
Online
niemand
 
Forumsuche
Suche nach:

Logo - DracheHaskell-Forum

Xan

Gepostet:
24.07.2012 22:05

klalammer_function  
Hallo,
meine Funktion soll bei der Eingabe eines Zeichen entscheiden, ob es sich um ei Klammer-Zeichen handelt oder nicht. Aber diese einfache kleine Funktion trotzdem bei mir nicht funktioniert. Wo gibt es hier Fehler?
klammer :: [Char] -> Bool
klammer n= if n \\\'(\\\' || \\\')\\\' then True else False
Zum Seitenanfang    
 
Landei

Gepostet:
24.07.2012 23:48

   
Als erstes ist die Signatur falsch: Wenn es nur um ein Zeichen geht, muss es Char -> Bool heißen. Dann musst du die Zeichen auch wirklich vergleichen, und zwar mit (==). Und zu guter letzt ist das if hier überflüssig - du hast doch durch den Vergleich schon einen Bool.


klammer n :: Char -> Bool
klammer n = n == \'(\' || n == \')\'


Oder mit Pattern Matching:


klammer n :: Char -> Bool
klammer \'(\' = True
klammer \')\' = True
klammer _ = False


Oder mit elem:

klammer n :: Char -> Bool
klammer n = n `elem` \"()\"

Zum Seitenanfang    
 
Xan

Gepostet:
25.07.2012 00:02

   
WOW eine tolle Lösung mit Pattern Matching .Vielen Dank
Zum Seitenanfang