Es sieht so aus, als ob Sie eine etwas komplizierte Funktion haben, die mit einer Hilfsfunktion nach einer Mitgliedschaft in einer Assoziationsliste sucht.
Die Funktion, die Sie zur Verfügung gestellt:
function :: Eq a => a -> (b -> c -> a) -> b -> [(d,c)] -> Bool
nimmt drei Argumente:
- ein Element
a
zu vergleichen,
- eine Hilfsfunktion
b -> c -> a
,
- ein Argument für die Hilfsfunktion
b
,
- eine Liste von Tupel
[(d, c)]
.
Dann eine mögliche Funktion des Typs Sie vorgesehen ist:
function :: Eq a => a -> (b -> c -> a) -> b -> [(d,c)] -> Bool
function a f b ((_,c):rest) = ((f b c) == a) || (function a f b rest
function a f b rest = False
, die für eine Mitgliedschaft in der Liste überprüft, indem das erste Element des Tupels zu ignorieren und die Hilfsfunktion auf die zweite Anwendung Argument des Tupels.
Während die Funktion kann kompliziert erscheinen, können Sie es auf einem recht einfachen Beispiel
function True (==) 0 [("a", 0), ("b",1)]
Im obigen Beispiel führen könnte, suchen wir für 0
die (==)
Helferfunktion verwenden, und wir überprüfen, ob die Funktion Helfer gibt True
zurück.
Es kann hilfreich sein, wenn Sie beschreiben können, was diese Funktion macht und was jedes Argument bedeutet. – Javran