www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

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

Logo - DracheHaskell-Forum

hasch

Gepostet:
14.01.2009 19:41

Parameter, die nicht deklariert wurden  
Hallo zusammen,
kann mir jemand von euch erklären, wie es möglich ist einen Parameter an eine Funktion zu übergeben, ohne dass dieser je in der Typdeklaration auftaucht?

Beispiel bei Parsern:

type Parse a b = [a] -> [(b, [a])]

-- An dieser Stelle wird ein Parameter inp verwendet, obwohl doch nur ein Parse a b Typ als Rückgabewert deklariert wurde!?
none :: Parse a b
none inp = []

Zum Seitenanfang    
 
Siracusa

Gepostet:
17.01.2009 00:43

   
Hallo,

> type Parse a b = [a] -> [(b, [a])]
Hierdurch wird ein Typsynonym definiert, der Typ auf der linken und auf der rechten Seite sind also gleich.

> none :: Parse a b
Wenn du hier den Typ Parse durch die Definition von oben ersetzt, erhältst du:
    none :: [a] -> [(b, [a])]

Nun hast du also eine "ganz normale" Funktion mit einem Eingabe- und einem Rückgabewert. inp hat also den Typ [a].


Viele Grüße,

Siracusa
Zum Seitenanfang