Hallo!

I have this code:
----------------------------------------
q1 :: EName -> [ApprenticeInfo]
q1 c = [apprenticeInfo n | n <- allApprentices, member ((sq4
c) (firstOf5(n))) == True]

sq4 :: ESurname -> [IDB]
sq4 c = (sq3 (sq1 (c)))

firstOf5 :: (a,b,c,d,e) -> a
firstOf5 (n,_,_,_,_) = n

member :: [IDB] -> IDB -> Bool
member [] y = False
member(x:xs) y = (x==y) || member xs y
----------------------------------------
sq4 works correctly and returns [IDB]
Unfortunately member ((sq4 c) (firstOf5(n))) gives this
error:

Type error in application
*** Expression     : sq4 c (firstOf5 n)
*** Term           : sq4
*** Type           : ESurname -> [IDB]
*** Does not match : a -> b -> c

As far as I see it I'm not writing the correct syntax for a
function of 2 functions. 
I have 
g(x): Esurname->[IDB]
h(y): (IDB,_,_,_,_) -> IDB
f(x,y): ([IDB], IDB) -> Bool 
I want to obtain f(g(x), h(y)) and I obtain something else.
Where am I wrong?

Thanks 
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to