Datentyp Char


... [ Seminar "Einführung in die funktionale Programmiersprache Haskell" ] ... [ Inhaltsverzeichnis ] ... [ zurück ] ... [ weiter ] ...

Übersicht: Datentyp Char


Datentypdeklaration und wichtige Funktionen


Der Datentyp Char besteht in Haskell aus den 256 ASCII-Zeichen. Die in ASCII definierten Steuerzeichen sind ebenfalls enthalten.
Die Deklaration kann man sich ähnlich der von Bool vorstellen. Es werden die einzelnen Werte aufgezählt. In diesem Beispiel werden Platzhalter verwendet.

01  data Char = Char0 | Char1 | ... | Char255

Für Zeichen sind in Haskell auch eine Reihe wichtiger Funktionen definiert.
Die Funktion ord liefert für ein Zeichen einen passenden Int Wert zurück, der die Position in der Deklaration angibt. Die Funktion chr hat die umgekehrte Funktionalität.

Es sind ausserdem Instanzen für die im vorigen Abschnitt vorgestellten Typklassen Eq und Ord definiert. Die Instanzen verwenden die eben genannte Funktion ord, da diese die Vergleiche auf Int zurückführt, für welches Standardimplementierungen gegeben sind.

01  ord     :: Char -> Int
02  chr     :: Int -> Char
03  
04  instance Eq Char where
05    (x == y)    = (ord x == ord y)
06  instance Ord Char where
07    (x < y)     = (ord x < ord y)


[ nach oben ]

Notation von Werten


Werte des Typs Char werden in einfachen Anführungszeichen notiert. Der kleine Buchstabe a wird beispielsweise durch 'a' notiert.
Die Notation von Steuerzeichen ist analog zu anderen Programmiersprachen. So werden Zeilenumbruch durch '\n', Tabulator durch '\t' und Backspace durch '\b' angegeben.


[ nach oben ]

Beispiele einfacher Funktionen


Mit den gegebenen Funktionen lassen sich einfach neue definieren, beispielsweise Prüfungen auf Ziffer, Gross- oder Kleinbuchstabe:

01  isDigit,isLower,isUpper     :: Char -> Bool
02  isDigit c                    = ('0' <= c) && (c <= '9')
03  isLower c                    = ('a' <= c) && (c <= 'z')
04  isUpper c                    = ('A' <= c) && (c <= 'Z')


... [ Seminar "Einführung in die funktionale Programmiersprache Haskell" ] ... [ Inhaltsverzeichnis ] ... [ zurück ] ... [ weiter ] ... [ nach oben ] ...